我已经配置了我的 spring security 来与组一起工作。
我使用此脚本来创建域类:
grails s2-quickstart com.yourapp User Role --groupClassName=RoleGroup
我假设一个用户可以有多个组,一个组可以有多个角色
这是 User 类中生成的方法的样子:
Set<RoleGroup> getAuthorities() {
UserRoleGroup.findAllByUser(this).collect { it.roleGroup }
}
但现在我看到该脚本还创建了一个名为 UserRole 的类,它是用户和角色之间的关联。那么一个用户还可以直接拥有多个角色吗?
我试过了,它已保存在数据库中。我修改了这样的方法:
def getAuthorities() {
def authorities = UserRoleGroup.findAllByUser(this).collect { it.roleGroup }
authorities.addAll(UserRole.findAllByUser(this).collect { it.role })
return authorities
}
现在,当我在数据库中的“用户 角色”关联中创建一个条目时。我无法再登录了。我收到 Spring Security 的默认消息,基本上说没有找到凭据。
当我手动删除该条目后,我可以再次登录。我认为这是因为该方法仅返回 RoleGroup 对象。
我的问题是:
a) 配置组时也可以直接分配角色吗
b) 如果不是,为什么脚本要创建这个类
c) 如果是,我该怎么做?
我认为人们不会指望你分配一个Role
直接到User
当你使用时Groups
.
分配一个Group
给用户,以及Role
to Group
.
我认为所提供的代码结构在“降级”您的应用程序时可能有用
仅使用User
and Roles
,不违反你当前的一套规则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)