26 Haziran 2019 Çarşamba

SpringSecurity DaoAuthenticationProvider Sınıfı - Default AuthenticationProvider Sınıfı Budur

Giriş
 Kendi İçindeki UserDetailsService Nesnesiyle Kullanıcıyı Doğrular. 
Bu sınıfın kalıtım hiyerarşisi şöyle
DaoAuthenticationProvider -> AbstractUserDetailsAuthenticationProvider ->
AuthenticationProvider
Sınıfın içinde
UserDetailsService userDetailsService;
şeklinde bir alan var. 

Tabi 
UserDetailsManager -> UserDetailsService
kalıtımı olduğu için bu alana JdbcUserDetailsManager da atanabiliyor.

Neticede bu sınıfın amacı kullanıcıyı doğrulamak. Kullanıcı bilgilerini yüklemek için de UserDetailsService alanını kullanıyor.

setPasswordEncoder metodu
Şöyle yaparız
public class WebSecurityConfig {

  private final BCryptPasswordEncoder passwordEncoder;

  @Bean
  public InMemoryUserDetailsManager inMemoryUserDetailsManager() {
     ...
    }

  @Bean
  public DaoAuthenticationProvider authProvider() {
    DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
    authProvider.setUserDetailsService(inMemoryUserDetailsManager());
    authProvider.setPasswordEncoder(passwordEncoder);
    return authProvider;
  }
  ...
}
setUserDetailsService metodu
Şöyle yaparız.
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserService userService;

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

  @Bean
  public DaoAuthenticationProvider authenticationProvider() {
    DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
    authenticationProvider.setUserDetailsService(userService);
    authenticationProvider.setPasswordEncoder(passwordEncoder());
    return authenticationProvider;
  }
  ...
}

Hiç yorum yok:

Yorum Gönder