我正在尝试在SonataAdminBundle中保护一些管理员
我使用fosUserBundle添加SonataUserBundle进行登录。 所以我可以添加用户,组和角色
在security.yml
中role_hierarchy:
ROLE_ADMIN: ROLE_ADMIN
ROLE_IT: ROLE_IT
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_IT]
access_control:
- { path: ^/sonata/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/sonata/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/sonata/login-check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/sonata, role: [ROLE_ADMIN] }
- { path: ^/sonata/api/monolog, role: [ROLE_IT] }
我必须连接才能访问Sonata
但是每个用户都可以访问路由/ sonata / api / monolog,即使他们没有ROLE_IT
如何安全管理员 如果用户可以访问链接,我怎么才能显示链接
答案 0 :(得分:4)
管理员用户必须拥有活动安全令牌中的所有角色。
如果您没有处于当前状态的所有角色,则应激活内存安全提供程序并指定包含所有角色和reauth的帐户。
答案 1 :(得分:0)
使用acl作为安全处理程序。