【问题标题】:Grails - Spring Security Account CreationGrails - Spring Security 帐户创建
【发布时间】:2012-06-08 04:22:51
【问题描述】:

我正在使用 Spring Security Core 插件,并且可以成功地将用户登录和注销我的应用程序。但是,当用户成功注册时,我不明白如何在注册回发中设置该用户的安全上下文,以便他们可以重定向到安全页面而无需再次登录。欢迎任何帮助。谢谢。

【问题讨论】:

    标签: security grails plugins login spring-security


    【解决方案1】:

    我最终找到了这个链接,它可以解决问题:https://stackoverflow.com/a/7112838/469106

    以下是该链接的内容:

    如果没有密码,可以通过

    加载用户
    def user = User.findByUsername(username) 
    

    并在三参数构造函数中设置权限数组。通过

    创建身份验证
    GrantedAuthority[] auths = user.authorities.collect { new GrantedAuthorityImpl(it.authority) }
    

    然后你可以省略对 authenticate() 的调用并使用:

    SecurityContextHolder.context.authentication = new UsernamePasswordAuthenticationToken(username, 'unknown', auths) 
    

    【讨论】:

      【解决方案2】:

      您引用的另一个链接已有 2 年历史。从那时起,我向 SpringSecurityService 添加了一个reauthenticate 方法。请参阅文档中的“6.2 SpringSecurityService”部分: http://grails-plugins.github.com/grails-spring-security-core/docs/

      【讨论】:

      • 谢谢。不过,我真的不明白它是如何工作的。如果我自己打电话给springSecurityService.reauthenticate userInstance.usernameSecurityContext 怎么知道用户名有什么权限?这是用户自从他们是全新用户以来将进行的第一次身份验证调用。
      • 阅读源代码 :) 它基本上完成了你正在做的事情,除了它从数据库加载用户。
      猜你喜欢
      • 2015-06-02
      • 2012-09-15
      • 2012-07-26
      • 2015-03-27
      • 2013-02-13
      • 1970-01-01
      • 2011-10-31
      • 2013-06-18
      • 2012-09-20
      相关资源
      最近更新 更多