Grails 3 - springSecurity使用密码重新验证

时间:2017-01-16 16:17:17

标签: authentication grails spring-security grails3

我刚刚注意到使用

springSecurityService.reauthenticate(userid, password)

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

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

配置

  • Grails 3.2.4
  • Spring Security Plugin(core)3.1.1

1 个答案:

答案 0 :(得分:0)

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

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

查看代码here

我希望这会有所帮助。