我有这个 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 中时,它说我已通过身份验证。