使用角色保护管理员
Protect admin with roles
我希望只有具有 ADMIN 或 ENSEIGNANT 角色的用户可以访问管理部分,但我仍然获得 Access即使我验证为 ENSEIGNANT
也被拒绝
role_hierarchy:
ROLE_ADMIN: [ROLE_ENSEIGNANT]
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
//...........
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, roles: [ROLE_ADMIN, ROLE_ENSEIGNANT] }
我认为您给用户的 ENSEIGNANT
而不是 ROLE_ENSEIGNANT
,但您的访问控制正在检查 ROLE_ENSEIGNANT
,这就是您收到拒绝访问异常的原因。尝试将 getRoles
方法更改为 return ROLE_ENSEIGNANT
如果有的话..
我希望只有具有 ADMIN 或 ENSEIGNANT 角色的用户可以访问管理部分,但我仍然获得 Access即使我验证为 ENSEIGNANT
也被拒绝role_hierarchy:
ROLE_ADMIN: [ROLE_ENSEIGNANT]
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
//...........
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, roles: [ROLE_ADMIN, ROLE_ENSEIGNANT] }
我认为您给用户的 ENSEIGNANT
而不是 ROLE_ENSEIGNANT
,但您的访问控制正在检查 ROLE_ENSEIGNANT
,这就是您收到拒绝访问异常的原因。尝试将 getRoles
方法更改为 return ROLE_ENSEIGNANT
如果有的话..