我正在使用FOSUserBundle管理用户,现在我正在尝试使用JMS \ SecurityExtraBundle保护一些控制器操作。我已在我的用户上设置了ROLE_SUPER_USER
并使用@Secure(roles="SUPER_ADMIN")
保护了一个方法,但我并没有对此方法进行调用。
在深入研究Symfony2的代码之后,我想我已经将问题追溯到getToken()->getRoles()
仅返回ROLE_USER
而getToken()->getUser()->getRoles()
正确返回用户角色的事实,包括ROLE_SUPER_USER
。
那么可能会发生什么?
答案 0 :(得分:0)
HAHA
我错过了这些台词:
providers:
main:
entity: { class: FM\SymSlateBundle\Entity\User, property: username }
在security.yml中:
security:
providers:
main:
entity: { class: FM\SymSlateBundle\Entity\User, property: username }
fos_userbundle:
id: fos_user.user_provider.username
因此Context使用的是只有USER_ROLE
的默认用户类