如何在Person类中存储层次结构的Authority类?

时间:2017-03-24 15:11:53

标签: grails spring-security grails-plugin grails-spring-security

我的问题是:(如何?)我可以存储我的权限"我的用户在Grails的用户类中使用Spring Security Plugin?

我已经给出了以下SQL结构:

用户表:

Array
(
[0] => car-red
[1] => car-green
[2] => car-blue
)

排名表:

...
varchar(255): username
...
int(2) rank: (refers to Rank table)

我是否可以配置我的域类,使用该结构而不是典型的" User,Authority,UserAuthority to many to many"模式?

等级(id)是等级的,这意味着等级4的用户获得所有权限#34;来自等级为3的用户

编辑: 我只是在User Domain中替换了getAuthorities方法,其中包含以下内容:

int(11): id
varchar(25): rank_name

1 个答案:

答案 0 :(得分:0)

查看GormUserDetailsService以了解如何加载作者。 springsecurity核心有一个authoritiesPropertyName配置,它指定应返回权限的用户域的属性名称,默认值为“权限” - 您可以修改此属性以根据您的域模型返回权限。 / p>

如果这不符合您的要求,那么您也可以创建自定义用户详细信息服务。

通过在userDetailsService

中定义名为conf/spring/resources.groovy的bean来覆盖原始用户详细信息服务