我读了这页关于Symfony security的内容!
但是我不能使用access_control . 我有两条路线和仪表板 . 返回仅适用于ROLE_SUPER_ADMIN,并且为了转到仪表板,必须对用户进行身份验证 .
匿名用户可以到任何地方,ROLE_USER可以返回(仅限SUPER ADMIN)
这是我的文件security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/dashboard, roles: ROLE_USER }
- { path: ^/back, roles: ROLE_ADMIN }
谢谢你的帮助
1 回答
当然匿名用户可以到处走!看看你的第一条规则
即使对于
/back
路径,规则也似乎正常,因为您点击了授予操作的第一个access_control
规则Faster solution :尝试反转您的规则订单
Better solution :尝试编写更好(不太通用)的规则[如果你的应用允许你这样做]