【发布时间】:2017-06-27 10:40:53
【问题描述】:
在documentation 中有许多示例,说明如何管理某些路由的访问控制。
我在security.yml 中有我的access_control 块,我在其中描述了哪个角色可以访问哪个页面:
security:
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/trainee, roles: ROLE_TRAINEE }
- { path: ^/university, roles: ROLE_UNIVERSITY_PROFESSOR }
- { path: ^/company, roles: ROLE_COMPANY_TUTOR }
现在这些路由只能用这些ROLES 访问,不能访问其他。
在这些路线中,我有一些表格,我想知道access_control 是否足以让其他ROLE 无法访问这些表格?
我在网上看到一些例子,人们将isGranted() 放入表单提交中:
if ($form->isValid()) {
if (!$authorizationChecker->isGranted('ROLE_TRAINEE')) {
throw new AccessDeniedException();
}
// ...
}
但在这里,我不确定他们是保护这些路由免受access_control 的影响,还是仅使用isGranted() 从控制器内部保护这些路由。
有人能解释一下区别吗?如果我也应该使用isGranted() 保护表单,即使路由受到access_control 的保护?
【问题讨论】:
标签: symfony authorization access-control