更改当前用户密码时应该验证什么?

gam*_*amo 0 java spring spring-security

我正在开发一个使用spring-security进行身份验证的spring-mvc项目.我也使用加密来编码密码并存储在数据库中.

现在我正在尝试更改密码功能.通常我们有old passwordnew password.

所以我有一些问题.

  1. 用户只能在登录后更改密码.那么是否有必要old password再次验证?

  2. 如果我们必须验证我们怎样才能在春天old password进行编码?

我正在使用BCryptPasswordEncoder密码编码.

San*_*jay 5

matches方法BCryptPasswordEncoder对此有用:

if (passwordEncoder.matches(changePasswordForm.getOldPassword(),
                                user.getPassword())) {
    // ok
} else {
    // wrong old password
}
Run Code Online (Sandbox Code Playgroud)