Security Symfony2和安全角色配置

Security Symfony2和安全角色配置,security,symfony,acl,fosuserbundle,Security,Symfony,Acl,Fosuserbundle,我正在尝试配置Symfony ACL: access_control: - { path: ^/, role: ROLE_A } role_hierarchy: ROLE_A: ROLE_USER ROLE_B: ROLE_A ROLE_ADMIN: ROLE_B ROLE_SUPER_ADMIN: ROLE_ADMIN 所以:A从USER扩展,B从A扩展等等 问题是,当我以ADMIN或SUPER\u

我正在尝试配置Symfony ACL:

access_control:
    - { path: ^/, role: ROLE_A }

role_hierarchy:
    ROLE_A:           ROLE_USER
    ROLE_B:           ROLE_A
    ROLE_ADMIN:       ROLE_B
    ROLE_SUPER_ADMIN: ROLE_ADMIN
所以:
A
USER
扩展,
B
A
扩展等等


问题是,当我以
ADMIN
SUPER\u ADMIN
身份登录时,我得到的
403
未授权。只有当我被授权为
A
时,它才起作用。为什么?角色扩展有什么不对?

据我所知,角色层次结构应该自上而下定义。因此,在上述示例中,您应该:

role_hierarchy:
        ROLE_SUPER_ADMIN: ROLE_ADMIN
        ROLE_ADMIN:       ROLE_B
        ROLE_B:           ROLE_A
        ROLE_A:           ROLE_USER
我想一定是这样

role_hierarchy:
    ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_B, ROLE_A, ROLE_USER]
    ROLE_ADMIN:       [ROLE_B, ROLE_A, ROLE_USER]
    ROLE_B:           [ROLE_A, ROLE_USER]
    ROLE_A:           ROLE_USER

你能发布你的整个安全配置吗。谢谢我有一个与你非常相似的配置,我也使用FOSUserBundle(我不使用JMSSecurity extra,但我认为这不重要),我尝试了你的角色层次结构,对我来说它是有效的。嗨,Krzysztof,谢谢你的回复。根据这本书,我确信“次要”角色应该放在第一位:()。我会查一下的。看