Requestmap未按预期在grails中工作

时间:2018-05-24 14:22:23

标签: grails groovy

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"

1 个答案:

答案 0 :(得分:0)

您需要定义可以访问该网址的所有角色。

例如: RelativeLayout ☝️说具有ROLE_ADMIN或ROLE_SUPERVISOR的用户可以访问URL LinearLayout

您可以在http://grails-plugins.github.io/grails-spring-security-core/2.0.x/guide/requestMappings.html#requestmapInstances

了解更多相关信息 match_parent的{​​{1}}无法正常工作,因为该插件会计算应用于当前请求的最具体规则。

new Requestmap(url: '/admin/user/**', configAttribute: 'ROLE_ADMIN,ROLE_SUPERVISOR').save() /admin/user/**更具体,因此应用了/**的关联角色。