java - 更改当前用户的密码时需要验证什么?

标签 java spring spring-security

我正在开发一个 spring-mvc 项目,该项目使用 spring-security 进行身份验证。我还使用加密对密码进行编码并存储在数据库中。

现在我正在尝试更改密码功能。通常我们有旧密码新密码

所以我有一个问题。

  1. 用户登录后才能更改密码。那么是否需要再次验证旧密码

  2. 如果我们必须验证如何在 Spring 中使用旧密码进行编码?

我正在使用 BCryptPasswordEncoder 对密码进行编码。

最佳答案

matches方法BCryptPasswordEncoder对此很有用:

if (passwordEncoder.matches(changePasswordForm.getOldPassword(),
                                user.getPassword())) {
    // ok
} else {
    // wrong old password
}

关于java - 更改当前用户的密码时需要验证什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32520889/

相关文章:

java - SpringBootTest 未在 Spring Boot 2 中回滚事务

spring - 我应该将Maven项目的应用程序配置文件放在哪里?

mysql - 使用 AngularJS 和 Spring Security 进行身份验证

grails - 传统身份验证,Facebook Connect和Grails

java - notificationItemInserted Range() 不适用于 recyclerview 适配器

java - 如何使用cq5中的页面内容生成CQ5.6.1中的PDF

java - 像 livejournal 一样显示消息树(java)

java - Spring Security 许多提供商

java - 为什么Java要从系统中读取它的默认设置

java - java中任何类文件中MODULE变量的最佳访问修饰符?