Grails - Spring Security 帐户创建
Posted
技术标签:
【中文标题】Grails - Spring Security 帐户创建【英文标题】:Grails - Spring Security Account Creation 【发布时间】:2012-06-08 04:22:51 【问题描述】:我正在使用 Spring Security Core 插件,并且可以成功地将用户登录和注销我的应用程序。但是,当用户成功注册时,我不明白如何在注册回发中设置该用户的安全上下文,以便他们可以重定向到安全页面而无需再次登录。欢迎任何帮助。谢谢。
【问题讨论】:
【参考方案1】:我最终找到了这个链接,它可以解决问题:https://***.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.username
,SecurityContext
怎么知道用户名有什么权限?这是用户自从他们是全新用户以来将进行的第一次身份验证调用。
阅读源代码 :) 它基本上完成了你正在做的事情,除了它从数据库加载用户。以上是关于Grails - Spring Security 帐户创建的主要内容,如果未能解决你的问题,请参考以下文章
grails-spring-security-rest 插件和悲观锁定
Grails + spring-security-core:用户登录后如何分配角色?