第二种自定义密码验证的方式是,实现PasswordEncoder,但个人感觉没实现AuthenticationProvider更加可扩展,方便。因为我加不了存在数据库中的salt进去。
在PasswordEncoder的实现类当中,可以选择用spring security自带的Md5PasswordEncoder,ShaPasswordEncoder进行加密。
Spring security配置主类:
/**
* Created by fjc on 2018-04-17.
*/
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter{
@Autowired
@Qualifier("customUserDetailsService")
UserDetailsService userDetailsService;
@Autowired
CustomSuccessHandler customSuccessHandler;
@Bean
public PasswordEncoder passwordEncoder() {
return new CustomPasswordEncoder();
}
@Bean
public DaoAuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
authenticationProvider.setUserDetailsService(userDetailsService);
authenticationProvider.setPasswordEncoder(passwordEncoder());
re