用户可能有多个角色,例如ROLE_USER, ROLE_SUBSCRIBTION_FOO, ROLE_SUBSCRIBTION_BAR
。
根据他们的角色,我定义了一个访问控制列表:
- { path: ^/admin/helpdesk/foo, roles: ROLE_SUBSCRIPTION_FOO }
- { path: ^/admin/helpdesk/index, roles: ROLE_ADMIN }
角色层次结构
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUBSCRIBTION_FOO: ROLE_ADMIN
ROLE_SUPER_ADMIN: ROLE_ADMIN
现在的问题是,当用户具有角色ROLE_SUBSCRIBTION_FOO
并访问 时,/admin/helpdesk/foo
访问被拒绝。用户同时拥有 ROLE_ADMIN 和 ROLE_SUBSCRIBTION_FOO。但是,当我有
- { path: ^/admin/helpdesk/foo, roles: ROLE_ADMIN }
它有效,但我需要它
- { path: ^/admin/helpdesk/foo, roles: ROLE_SUBSCRIPTION_FOO }
哪个不起作用,但是用户确实具有角色?这有点奇怪。任何想法问题出在哪里?