0

在我的系统中,我为用户分配了许多角色(现在假设为 3 个ROLE_ADMIN, ROLE_USER, ROLE_SERVICES)。在我的一个控制器中(假设SearchController我们有三个操作serviceIndex{}, userIndex{} and adminIndex{}),我希望任何角色的用户都能够访问其中两个操作(前两个)。对于最后的操作,我想限制针对单一角色类型的用户(比如说 ROLE_USER)的操作,但允许访问其他角色的用户(即ROLE_ADMIN, ROLE_SERVICE。我的 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

由于第三条规则规定 ROLE_USER 无法访问 url '/search/adminIndex',因此具有该角色的用户应该被拒绝访问该 url 的授权。但是,用户仍然可以访问该网址。什么是正确的配置。我确实尝试过类似的东西/search/adminIndex/**,但这也不起作用。附带说明一下,所有网址都没有后缀,但如果用户像添加后缀一样操纵网址,我仍然想阻止访问,以防/search/userIndex/56a万一。

问候,迪普斯

4

1 回答 1

1

由于插件会遍历规则并应用与当前 URL 匹配的第一个规则,因此我会先设置 adminIndex,然后再设置其他任何内容。

ROLE_ADMIN,ROLE_SERVICE            /search/adminIndex
ROLE_ADMIN,ROLE_SERVICE,ROLE_USER  /search/**
于 2012-06-25T17:09:25.070 回答