私はこの security.yml ファイルを持っています:
...
security:
encoders:
Trainme\RestBundle\Document\User:
id: security.encoder.blowfish
role_hierarchy:
ROLE_TRAINER: ROLE_USER
ROLE_ADMIN: ROLE_TRAINER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
trainme_admin_provider:
id: trainme_admin.user_provider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_admin:
pattern: ^/admin
form_login:
check_path: trainme_security_check
login_path: trainme_login
default_target_path: trainme_dashboard
logout:
path: trainme_logout
target: trainme_redirect_route
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/profile, roles: ROLE_TRAINER }
ユーザーの役割が ROLE_TRAINER の場合は /profile にリダイレクトされ、ROLE_ADMIN の場合は /admin にリダイレクトされます。これは、次のソリューションHow to redirect to different url based on roles in symfony 2 を使用して行います。
問題は次のとおりです: /profile のデバッグ ツールバーを見ると、認証されていないと表示されます。認証されないのはなぜですか? すでにログインフォームを使用してログインしています。しかし、ROLE_ADMIN としてログインし、/admin にいると、認証されていると表示されます。