在Bootstrap.groovy
中,我创建了一个新的请求映射,其中ROLE_ADMIN
为configAttribute,而/ **为URL。当我以ROLE_ADMIN
身份登录时,我能够访问所有网址。
当我在UI中添加新的requetsmap,其中ROLE_TEST为configAttribute,/ customer / **为URL时,具有ROLE_ADMIN的用户无法访问客户页面。即使ROLE_ADMIN具有/ **特权。
现在,只有ROLE_TEST
的用户才能访问客户页面,而不能访问其他用户。
对此功能的期望是,测试用户应该只能访问客户页面而不能访问任何其他页面。但是,目前只有Test用户才能访问Customer页面。
Config.groovy
设置 -
grails.plugin.springsecurity.userLookup.userDomainClassName = 'com.bi.report.auth.User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'com.bi.report.auth.UserRole'
grails.plugin.springsecurity.authority.className = 'com.bi.report.auth.Role'
grails.plugin.springsecurity.requestMap.className = 'com.bi.report.auth.Requestmap'
grails.plugin.springsecurity.securityConfigType = 'Requestmap'
Bootstrap.groovy代码
def loadRequestMap(){
if (Requestmap.count()<=0) {
new Requestmap(url: '/**', configAttribute: 'ROLE_ADMIN').save()
/*new Requestmap(url: '/**', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save()*/
new Requestmap(url: '/*/', configAttribute: 'ROLE_ADMIN').save();
new Requestmap(url: '/logout/**', configAttribute: 'IS_AUTHENTICATED_REMEMBERED,IS_AUTHENTICATED_FULLY').save();
new Requestmap(url: '/login/**', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save()
new Requestmap(url: '/index/**', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save();
}
}
欢迎任何建议。 谢谢。
Grails版本2.3.4
Spring安全插件:compile ":spring-security-core:2.0-RC2"
答案 0 :(得分:0)
您需要定义可以访问该网址的所有角色。
例如:
RelativeLayout
☝️说具有ROLE_ADMIN或ROLE_SUPERVISOR的用户可以访问URL LinearLayout
match_parent
的{{1}}无法正常工作,因为该插件会计算应用于当前请求的最具体规则。
new Requestmap(url: '/admin/user/**', configAttribute: 'ROLE_ADMIN,ROLE_SUPERVISOR').save()
比/admin/user/**
更具体,因此应用了/**
的关联角色。