在我的系统中,我为用户分配了许多角色(让我们假设3现在为ROLE_ADMIN, ROLE_USER, ROLE_SERVICES
)。在我的一个控制器中(让我们假设SearchController
我们有三个动作serviceIndex{}, userIndex{} and adminIndex{}
),我希望任何角色的用户都能够访问两个操作(前两个)。对于最终操作,我想限制对单个角色类型的用户(可以说是ROLE_USER)的操作,但允许访问其他角色的用户(即到ROLE_ADMIN, ROLE_SERVICE
。我的请求映射表中有类似如下的内容:在spring安全核心中为grails配置requestmap时出错
config_attribute ------------------------------------------------ -----------> url
ROLE_ADMIN,ROLE_SERVICE,ROLE_USER ------------------------------ >/search/serviceIndex
ROLE_ADMIN,ROLE_SERVICE,ROLE_USER ------------------------------->/search/userIndex
ROLE_ADMIN,ROLE_SERVICE ----------------------------------------->/search/adminIndex
由于第三条规则指出URL'/ search/adminIndex'对ROLE_USER不可访问,因此具有该角色的用户应该已被拒绝访问该URL的授权。但是,用户仍然可以访问该网址。什么是正确的配置。我确实尝试了一些像/search/adminIndex/**
,但那也行不通。在附注中,没有一个网址会有后缀,但是如果用户操纵网址就像加入后缀/search/userIndex/56a
以防万一,我仍然希望阻止访问。
问候, dipess
即使您可能是对的,但由于每个URL都不相同,因此这种逻辑看起来有缺陷。我真的不明白为什么OP的当前配置不能工作。 – Gregg
其中一个原因可能是其他未粘贴的规则在粘贴任何粘贴前匹配。在那种情况下,我的答案也是错误的。 –