【发布时间】:2012-06-26 23:10:47
【问题描述】:
在我的系统中,我为用户分配了许多角色(现在假设为 3 个ROLE_ADMIN, ROLE_USER, ROLE_SERVICES)。在我的一个控制器中(假设SearchController 我们有三个动作serviceIndex{}, userIndex{} and adminIndex{}),我希望任何角色的用户都能够访问其中两个动作(前两个)。对于最后的操作,我想限制针对单一角色类型的用户(比如说 ROLE_USER)的操作,但允许访问其他角色的用户(即 ROLE_ADMIN, ROLE_SERVICE。我的 requestmap 表中有类似以下内容。
config_attribute ---------------------------------------------- ------------->网址
ROLE_ADMIN,ROLE_SERVICE,ROLE_USER ------------------------------> /search/serviceIndex
ROLE_ADMIN,ROLE_SERVICE,ROLE_USER-------------------------------------------> /search/userIndex
ROLE_ADMIN,ROLE_SERVICE -----------------------------------------> /search/adminIndex
由于第三条规则规定 ROLE_USER 无法访问 url '/search/adminIndex',因此具有该角色的用户应该被拒绝访问该 url 的授权。但是,用户仍然可以访问该网址。什么是正确的配置。我确实尝试过/search/adminIndex/** 之类的东西,但这也不起作用。附带说明一下,所有 url 都不会有后缀,但如果用户操纵 url,比如添加像 /search/userIndex/56a 这样的后缀,我仍然想阻止访问。
问候, 迪普斯
【问题讨论】:
标签: grails spring-security grails-plugin