0

我正在使用 FOSUserBundle 来管理用户,现在我正在尝试使用 JMS\SecurityExtraBundle 来保护一些控制器操作。我已经设置ROLE_SUPER_USER了我的用户并保护了一个方法,@Secure(roles="SUPER_ADMIN")但我无权调用该方法。

在深入研究 Symfony2 的代码之后,我想我已经将问题追溯到getToken()->getRoles()仅返回ROLE_USERgetToken()->getUser()->getRoles()正确返回用户角色的事实,包括ROLE_SUPER_USER.

那么那里会发生什么?

4

1 回答 1

0

哈哈

我错过了以下几行:

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

因此,上下文使用的是只有 USER_ROLE 的默认用户类

于 2012-12-29T19:47:29.580 回答