我有一个spring data rest自定义用户存储库,其中密码需要使用BCCrypt加密.从UI我发送普通密码,我想知道在hibernate在DB中创建用户之前将普通密码转换为BCCrypt哈希的位置.我应该在保存拦截器之前使用并哈希密码吗?或者有什么方法可以告诉spring使用密码编码器?
最佳答案
您需要在注册服务中执行此操作,如下所示:
@Autowired
private BCryptPasswordEncoder passwordEncoder;
...
public void registerUser(final User user)
{
final String encodedPassword = passwordEncoder.encode(user.getPassword());
user.setPassword(encodedPassword);
userRepo.save(user);
}
我推荐的密码编码器是org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder,这个编码器会自动为你生成一个盐.