【发布时间】:2013-09-20 14:22:27
【问题描述】:
我正在 Symfony2 中开发一个小型后台,我希望被授予 ROLE_ADMIN 的用户只能访问带有 ^/admin/ URL 模式(以及 ^/logout$)的页面。
到目前为止,我已经设法限制其他用户使用访问控制访问这些页面:
// security.yml
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/
anonymous: ~
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: /login
logout:
invalidate_session: false
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/, role: ROLE_USER }
但我找不到如何将管理员用户限制在这些页面上。实现这一目标的最佳方法是什么?
【问题讨论】:
-
对于普通用户,网站的其余密码是否也受到保护?仅仅是管理员拥有额外的权限,还是您说如果他们已登录,他们应该无法访问公共页面?
-
我添加了
security.yml文件的其余部分。基本上所有内容都禁止非登录用户访问,普通用户可以访问除/admin页面之外的所有内容。