Giriş
Kendi İçindeki UserDetailsService Nesnesiyle Kullanıcıyı Doğrular.
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.
Şö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