Grails 3 - 带密码的弹簧安全认证

Grails 3 - springSecurity reauthenticate with password

我刚刚注意到使用

springSecurityService.reauthenticate(userid, password)

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

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

配置

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

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

看看代码here

希望对您有所帮助。