【发布时间】:2016-08-23 14:24:41
【问题描述】:
我关注 Silex 文档部分http://silex.sensiolabs.org/doc/providers/security.html#defining-access-rules
这是我的确认
'security.role_hierarchy' => [
'ROLE_ADMIN' => [
'ROLE_USER',
],
'ROLE_SUPER_ADMIN' => [
'ROLE_USER',
'ROLE_ADMIN',
'ROLE_ALLOWED_TO_SWITCH'
]
],
'security.access_rules' => [
[ '^.*$', 'IS_AUTHENTICATED_ANONYMOUSLY' ],
[ '^/account', 'ROLE_USER' ],
[ '^/admin', 'ROLE_ADMIN' ]
]
所以我需要的很简单,匿名用户可以访问任何地方(/account/* 和 /admin/* 路径除外),具有“ROLE_USER”的用户可以访问任何地方和 /account/* 路径,但不能/admin/* 路径,具有“ROLE_ADMIN”的用户可以访问任何地方。
我制作了一个非常基本的控制器来测试如果用户不是“ROLE_ADMIN”,他是否会被重定向:
$app->get('/admin', function () use ($app) {
return 1;
})->bind('admin');
但一点也不。他可以访问/admin,并在页面上打印“1”...
根据文档:
With the above configuration, users must have the ROLE_ADMIN to access the /admin section of the website [...] (if that's not the case, the user will be automatically redirected).
【问题讨论】: