authentication - Grails 3-使用密码的Spring Security身份验证

标签 authentication grails spring-security grails3

我只是偶然发现

springSecurityService.reauthenticate(userid, password)

无论password的值如何(例如正确的密码,错误的密码,空密码等),用于手动用户认证(在 Controller 中)的操作都会成功。

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

设定档
  • Grails 3.2.4
  • Spring Security插件(核心)3.1.1
  • 最佳答案

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

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

    看看代码here

    我希望这有帮助。

    关于authentication - Grails 3-使用密码的Spring Security身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41680626/

    相关文章:

    java - 使用 @PreAuthorize 时 Spring SpelExpression 似乎没有读取我的 bean

    spring - Spring Session 如何在单个浏览器中支持多个 session ?

    java - 如何在 Spring Boot 的 Spring Security 级别启用 CORS

    C# - 无法连接到任何指定的 MySQL 主机

    php - 使用 HTML Mime Mail for PHP 发送电子邮件,但需要通过 Exchange 服务器进行身份验证

    grails mockFor 闭包怪异

    java - 如何设置 Grails 和 AngularJS 部分模板

    c# - MVC3 - 获取经过身份验证的用户的部门名称

    php - 每次执行按钮操作时如何将值插入数据库表

    mysql - 如何将Grails war部署到tomcat