Symfony2和安全角色配置

时间:2012-09-02 13:23:12

标签: 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来自USERB来自A等。

问题是,当我以ADMINSUPER_ADMIN登录时,我的403未获得授权。它仅在我被授权为A时才有效。为什么?我在角色扩展方面做错了什么?

2 个答案:

答案 0 :(得分:0)

据我所知,角色层次结构应该自上而下定义。所以在上面的例子中你应该有:

role_hierarchy:
        ROLE_SUPER_ADMIN: ROLE_ADMIN
        ROLE_ADMIN:       ROLE_B
        ROLE_B:           ROLE_A
        ROLE_A:           ROLE_USER

答案 1 :(得分:0)

我想它必须是

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