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 に答える