在 PasswordEncoder 中获取用户名

art*_*rxe 5 spring spring-security

我为 Spring 应用程序创建了自己的身份验证提供程序,并在其上指定了org.springframework.security.crypto.password.PasswordEncoder. 我将我的用户及其加密密码存储在数据库中(在数据库算法之后)。为了能够进行身份验证,我需要从org.springframework.security.crypto.password.PasswordEncoder班级访问为进行身份验证而发送的用户名。谁能指导我如何做到这一点?或者还有其他方法吗?

注意我使用的是SpringSecurity 3.2。

Jee*_*ore 0

假设用户输入的用户名、用户密码为User、Pwd。为了进行身份验证,您可以执行以下操作。

  1. 获取用户输入的用户名和密码(User,Pwd)。
  2. 使用对 Pwd 进行编码 String encodedPassword=passwordEncoder.encode(pwd);
  3. 比较如果 UserEnteredUserName=DBUserNAme 和 UserEnteredEncodedPassword==EncodedPasswordInDB,根据匹配值,您可以对用户进行身份验证。