【发布时间】:2015-03-11 22:42:05
【问题描述】:
我正在处理grails 2.3.8 项目并尝试自定义Role Hierarchy。我正在尝试用rolePrefix = 'PERM_' 更改resources.groovy 中rolePrefix = 'ROLE_' 的默认值。我知道要完成这项工作,我需要在我的 Config.groovy 中进行以下更改,如下所示:
grails.plugins.springsecurity.userLookup.userDomainClassName = 'tpo.core.acl.AdminAccount'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'tpo.core.acl.AdminAccountPermission'
grails.plugins.springsecurity.authority.className = 'tpo.core.acl.Permission'
为了建立层次结构,我也需要在我的 Config.groovy 中添加它
grails.plugins.springsecurity.roleHierarchy = '''
PERM_ACCOUNT_ALL > PERM_ACCOUNT_CREATE
PERM_ACCOUNT_ALL > PERM_ACCOUNT_READ
PERM_ACCOUNT_ALL > PERM_ACCOUNT_UPDATE
PERM_ACCOUNT_ALL > PERM_ACCOUNT_DELETE
'''
所以在我的控制器中,它类似于,
@Secured(['PERM_ACCOUNT_ALL'])
def index() {
redirect(action: "list", params: params)
}
当我尝试运行我的应用程序并访问我的控制器的index() 操作时,我被提示登录,这是由于@Secured() 的存在而预期的,但成功登录后,我还没有能够访问index() 操作,它显示,对不起,您无权查看此页面。该权限已分配给我曾经登录的用户,但我仍然无法访问它。
我错过了什么?
【问题讨论】: