0

セキュリティを希望どおりに機能させるのに問題があります。

ROLE_ADMINを持つ人だけがアクセスできるように、管理部分を保護したい。そして、それはうまく機能します。ただし、保護されていない/パブリック領域でROLE_ADMINIS_AUTHENTICATED_ANONYMOUSLYを区別できるようにしたいと考えています。

私はそれを機能させることはできません。管理セクションにログインした後。認証済みでROLE_ADMINを持っていることをツールバーで確認できますが、Web サイトのパブリック セクションに戻るとすぐにanonymously authenticatedに変わります。

私が現在持っているセキュリティ設定は次のとおりです。

jms_security_extra:
    secure_all_services: false
    expressions: true

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        in_memory:
            memory:
                users:
                    myusername:  { password: mypassword, roles: [ 'ROLE_ADMIN' ] }

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        login_area:
            pattern: ^/login$
            anonymous: ~

        secured_area:
            pattern: ^/admin|^/login_check$|^/logout$
            form_login: ~
            logout: ~

        public_area:
            pattern: ^/
            anonymous: ~

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin, roles: ROLE_ADMIN }
        - { path: ^/, roles: [ROLE_ADMIN, IS_AUTHENTICATED_ANONYMOUSLY] }

ご覧のとおり、 ROLE_ADMINIS_AUTHENTICATED_ANONYMOUSLYの両方のロールをアクセス制御の '^/' パスに追加しようとしましたが、何も変わりません。

Symfony2 の書籍とクックブックの両方のエントリを検索しましたが、この問題に関して役立つものは見つかりませんでした。

4

1 に答える 1