セキュリティを希望どおりに機能させるのに問題があります。
ROLE_ADMINを持つ人だけがアクセスできるように、管理部分を保護したい。そして、それはうまく機能します。ただし、保護されていない/パブリック領域でROLE_ADMINとIS_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_ADMINとIS_AUTHENTICATED_ANONYMOUSLYの両方のロールをアクセス制御の '^/' パスに追加しようとしましたが、何も変わりません。
Symfony2 の書籍とクックブックの両方のエントリを検索しましたが、この問題に関して役立つものは見つかりませんでした。