#10 Wreszcie! Panel logowania czyli Spring Security w projekcie.

Nastał ten dzień, w którym do projektu został wprowadzony panel logowania, z którym tak długo się męczyłem. Przeszedłem na Spring Boota i jestem zdziwiony jakie to wszystkie proste oraz intuicyjne nie trzeba ręcznie wszystkiego konfigurować SB zrobi to za nas. Jednak wcześniej to był skok na głęboką wodę, teraz będzie już tylko z górki!

Jak wygląda klasa zajmująca się konfiguracją Spring Security? Bardzo prosto! A co za tym idzie przejrzyście nawet osoba, która nie miała wcześniej z tą technologią do czynienia byłaby w stanie zrozumieć „co tu się dzieje”.

@Override
	protected void configure(AuthenticationManagerBuilder auth)
			throws Exception {
		auth.
			jdbcAuthentication()
				.usersByUsernameQuery(usersQuery)
				.authoritiesByUsernameQuery(rolesQuery)
				.dataSource(dataSource)
				.passwordEncoder(bCryptPasswordEncoder);
	}

	@Override
	protected void configure(HttpSecurity http) throws Exception {

		http.
			authorizeRequests()
				.antMatchers("/**").permitAll()
				.antMatchers("/login").permitAll()
				.antMatchers("/registration").permitAll()
				.and().csrf().disable().formLogin()
				.loginPage("/login").failureUrl("/login?error=true")
				.defaultSuccessUrl("/homepage")
				.usernameParameter("email")
				.passwordParameter("password")
				.and().logout()
				.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
				.logoutSuccessUrl("/")
        ;

Oczywiście hasła zapisywane są szyfrowane, za to odpowiada  bCrypt – w końcu bezpieczeństwo przede wszystkim, a przynajmniej jego podstawy. To w zasadzie byłoby wszystko jeśli chodzi o dzisiejszy post, w następnym zajmiemy się dodawaniem screena do bazy danych, przypisywanie go do konkretnego użytkownika. Czego nie mogłem wcześniej zrobić gdyż potrzebowałem informacji jaki użytkownik jest aktualnie zalogowany tak aby móc później wyświetlić dla niego historie jego screenów.

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *