在我的系统中,我为用户分配了许多角色(现在让我们假设3 ROLE_ADMIN, ROLE_USER, ROLE_SERVICES
)。在我的一个控制器中(我们假设SearchController
我们有三个动作serviceIndex{}, userIndex{} and adminIndex{}
),我希望任何角色的用户都能够访问其中两个动作(前两个)。对于最后一个操作,我想针对单个角色类型的用户限制操作(比如说ROLE_USER),但是允许访问其他角色的用户(即ROLE_ADMIN, ROLE_SERVICE
。我的请求映射表中有以下内容
config_attribute ---------------------------------------------- -------------> URL
ROLE_ADMIN,ROLE_SERVICE,ROLE_USER ------------------------------> /搜索/ serviceIndex
ROLE_ADMIN,ROLE_SERVICE,ROLE_USER -------------------------------> /搜索/ userIndex
ROLE_ADMIN,ROLE_SERVICE -----------------------------------------> /搜索/ adminIndex
由于第三条规则规定ROLE_USER无法访问url'/ search / adminIndex',因此具有该角色的用户应该被拒绝访问该URL的授权。但是,用户仍然可以访问该URL。什么是正确的配置。我确实试过像/search/adminIndex/**
这样的东西,但这也不起作用。另外,没有一个网址会有后缀,但如果用户操纵网址,我仍然希望阻止访问,例如添加/search/userIndex/56a
等后缀,以防万一。
此致 dipess
答案 0 :(得分:1)
由于插件遍历规则并应用了与当前URL匹配的第一个规则,因此我首先设置adminIndex,然后对其他任何内容进行捕获。
ROLE_ADMIN,ROLE_SERVICE /search/adminIndex
ROLE_ADMIN,ROLE_SERVICE,ROLE_USER /search/**