【发布时间】:2016-03-31 04:22:38
【问题描述】:
我在我们的应用程序中使用 Spring 安全性,并希望使用存储在数据库中的密码来验证用户输入以用于更改密码选项。
密码在DB中存储如下。
user.setPassword(new BCryptPasswordEncoder().encode("<userPassword>"));
在这里,用户输入的密码使用上述逻辑进行编码并存储在数据库中。现在我只是想从用户那里获取密码以更改密码。从用户那里获得密码后,我使用上述逻辑进行编码并尝试与数据库进行比较。即使我使用相同的编码逻辑,编码的值似乎也不同。
我的配置来自WebSecurityConfig:
@Autowired
public void configAuthentication(final AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(new BCryptPasswordEncoder());
}
我不确定比较有什么问题。
【问题讨论】:
-
您是如何将编码后的密码相互比较的?使用
String#equals或PasswordEncoder#matches?
标签: java spring spring-security