我有一个用户表,其中角色字段包含[“ ROLE_SUPERUSER”]
现在我有两个Urls:
当用户成功登录时,它会生成一个cookie。如何将访问控制设置为第二个URL,如果未设置cookie,则不允许该URL。
我已在security.yaml
文件中添加了以下几行
access_control:
- { path: ^/api/{locale}, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/{locale}, roles: ROLE_SUPERUSER}
但是这没用。
有帮助吗?
在access_control
中,首先进行匹配设置。因为您的模式都匹配,所以所有用户均为IS_AUTHENTICATED_ANONYMOUSLY
。您必须为防火墙使用单独的路径/模式来授权具有不同角色的角色:
access_control:
- { path: ^/api/{locale}/secured, roles: ROLE_SUPERUSER}
- { path: ^/api/{locale}, roles: IS_AUTHENTICATED_ANONYMOUSLY }
您可以在文档中找到更多信息:Symfony - How to restrict Firewalls to a Request