The*_*Tom 1 routes access-control symfony
我的acces_control insisde security.yml不起作用.我已经清除缓存没有任何结果:)
当我阅读文档时,我发现任何错误......非常,只有ROLE_ADMIN才能访问路径/ user /.角色是正确的,我测试了它
{% if is_granted('ROLE_ADMIN') %}
Run Code Online (Sandbox Code Playgroud)
在Twig里面.
security:encoders:FOS\UserBundle\Model\UserInterface:pbkdf2
role_hierarchy:
ROLE_CUSTOMER_REVISION: ROLE_USER
ROLE_CUSTOMER_MANAGER: [ROLE_CUSTOMER_REVISION, ROLE_IOS]
ROLE_CUSTOMER_ADMIN: ROLE_CUSTOMER_MANAGER
ROLE_ADMIN: [ROLE_CUSTOMER_ADMIN]
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/user/, role: ROLE_ADMIN }
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
default_target_path: /{locale}/
logout: true
anonymous: true
Run Code Online (Sandbox Code Playgroud)
我做错了什么,我没看到?
您必须将acces_control子句从最具体到最一般的排序:
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/user/, role: ROLE_ADMIN }
- { path: ^/, role: ROLE_USER }
Run Code Online (Sandbox Code Playgroud)
这是因为路径/admin也与^/模式匹配,因此^/admin/必须先放置限制模式.
| 归档时间: |
|
| 查看次数: |
3284 次 |
| 最近记录: |