1

我只是碰巧注意到使用

springSecurityService.reauthenticate(userid, password)

对于手动用户身份验证(在控制器中),无论 的值如何password,即正确密码、错误密码、空密码等都会成功。

我错过了什么吗?
springSecurityService 方法的声明
void reauthenticate(String username, String password = null)
一开始我非常确信密码检查已经到位。

配置

  • 圣杯 3.2.4
  • Spring Security 插件(核心)3.1.1
4

1 回答 1

0

该方法使用您提供给该方法reauthenticate的电子邮件中找到的 UserDetails 实例更新当前安全上下文。reauthenticate它不执行任何验证,因为它是内部调用。它还会从用户缓存中删除用户,以在下次登录时强制刷新。

因此,如果您不传递密码参数,它将使用来自 UserDetails 实例的密码并使用这些详细信息设置身份验证上下文。

看看这里的代码

我希望这有帮助。

于 2017-01-30T18:27:08.730 回答