grails - Requestmap无法按预期运行

标签 grails groovy

Bootstrap.groovy中,我创建了一个新的requestmap,其中ROLE_ADMIN作为configAttribute和/ **作为URL。当我以ROLE_ADMIN登录时,我能够访问所有URL。

当我在UI中以ROLE_TEST作为configAttribute和/ customer / **作为URL添加新的requetsmap时,具有ROLE_ADMIN的用户无法访问客户页面。即使ROLE_ADMIN具有/ **特权。

现在,只有具有ROLE_TEST的用户才能访问客户页面,而其他用户则不能。
该功能所需要的是,测试用户应该只能访问客户页面,而不能访问任何其他页面。但是,当前“客户”页面只能由测试用户访问。

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.4Spring Security插件:compile ":spring-security-core:2.0-RC2"

最佳答案

您需要定义可以访问URL的所有角色。

例如: new Requestmap(url: '/admin/user/**', configAttribute: 'ROLE_ADMIN,ROLE_SUPERVISOR').save() ☝️说具有ROLE_ADMIN或ROLE_SUPERVISOR的用户可以访问URL /admin/user/**
您可以在http://grails-plugins.github.io/grails-spring-security-core/2.0.x/guide/requestMappings.html#requestmapInstances上了解更多有关它的信息。
/**ROLE_ADMIN无法按您期望的方式工作,因为该插件会计算适用于当前请求的最具体的规则。
/customer/**/**更具体,因此应用了ROLE_TEST的关联角色。

关于grails - Requestmap无法按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50511756/

相关文章:

grails - Grails的域read()函数是否使用二级缓存?

Groovy - 覆盖单个实例的 invokeMethod

grails - 如何将inList约束添加到不同类的变量中?

grails - 如何在ElasticSearch的精彩集锦中过滤掉(损坏的)HTML标签?

mysql - Groovy:RedHat:java.sql.SQLException:没有找到适合 jdbc:mysql 的驱动程序:

java - grails urlMappings dsl

ajax - 继续对表数据进行Ajax调用,直到找不到文本为止

grails - 如何在Grails中映射此现有数据库?

javascript - 使用Ajax添加TinyMCE实例-Grails

google-chrome - Grails/Chrome 错误 : resource interpreted as Font but transferred with MIME type application/octet-stream