我是一个刚开始使用Spring MVC的新手(不幸的是,文档对我没什么帮助),我仍然在试图使用Jasypt PasswordEncrypter来加密通过注册表单收到的密码。直接在用户模型密码设置器中进行或者我应该使用服务是不好的做法吗?另外,我相信这可以与Spring Security集成,以便将加密器用于身份验证?感谢。
答案 0 :(得分:0)
验证时
使用authenticationProvider`对密码后验证进行编码
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authProvider());
}
@Bean
public DaoAuthenticationProvider authProvider() {
DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
authProvider.setUserDetailsService(userDetailsService);
authProvider.setPasswordEncoder(encoder());
return authProvider;
}
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}
关于用户创建
在userService
@Autowired
private PasswordEncoder passwordEncoder;
然后
user.setPassword(passwordEncoder.encode(userDto.getPassword()));
来源:Registration with Spring Security – Password Encoding
此外,请务必定义要保护的密码的输入