Grails 3 - 带密码的弹簧安全认证
Grails 3 - springSecurity reauthenticate with password
我刚刚注意到使用
springSecurityService.reauthenticate(userid, password)
无论 password
的值如何,手动用户身份验证(在控制器中)都会成功,即正确密码、错误密码、空密码等。
我是不是漏掉了什么?
springSecurityService的方法声明是
void reauthenticate(String username, String password = null)
所以起初我非常有信心密码检查已经到位。
配置
- Grails 3.2.4
- Spring 安全插件(核心)3.1.1
reauthenticate
方法使用您提供给 reauthenticate
方法的电子邮件找到的 UserDetails 实例更新当前安全上下文。它不执行任何验证,因为它是内部调用。它还从用户缓存中删除用户以在下次登录时强制刷新。
因此,如果您不传递密码参数,它将使用 UserDetails 实例中的密码并使用这些详细信息设置身份验证上下文。
看看代码here
希望对您有所帮助。
我刚刚注意到使用
springSecurityService.reauthenticate(userid, password)
无论 password
的值如何,手动用户身份验证(在控制器中)都会成功,即正确密码、错误密码、空密码等。
我是不是漏掉了什么?
springSecurityService的方法声明是
void reauthenticate(String username, String password = null)
所以起初我非常有信心密码检查已经到位。
配置
- Grails 3.2.4
- Spring 安全插件(核心)3.1.1
reauthenticate
方法使用您提供给 reauthenticate
方法的电子邮件找到的 UserDetails 实例更新当前安全上下文。它不执行任何验证,因为它是内部调用。它还从用户缓存中删除用户以在下次登录时强制刷新。
因此,如果您不传递密码参数,它将使用 UserDetails 实例中的密码并使用这些详细信息设置身份验证上下文。
看看代码here
希望对您有所帮助。