要检查用户是否可以访问控制器,具体取决于他的角色,我们通常会在控制器的顶部执行以下操作:
$this->denyAccessUnlessGranted('ROLE_ADMIN');
或使用注释:
/**
* @Security("has_role('ROLE_ADMIN')")
*/
所有受保护的控制器都有这样的检查。
是否可以将此检查放入路线设置中,例如: G。这种方式或某种方式类似:
protected_route:
path: /top_secret
defaults: { _controller: '...', roles: [ROLE_ADMIN] }
答案 0 :(得分:2)
是的,你应该看看这个页面:
http://symfony.com/doc/current/book/security.html#securing-url-patterns-access-control
# app/config/security.yml
security:
# ...
firewalls:
# ...
access_control:
# require ROLE_ADMIN for /admin*
- { path: ^/admin, roles: ROLE_ADMIN }