2012-09-02 81 views
0

我想配置ACL的Symfony:的Symfony2和安全角色配置

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延伸从USERBA

的问题是,当我登录为ADMINSUPER_ADMIN我收到403未授权。只有当我被授权为A时才有效。为什么?我在做什么错误角色延伸?

+0

你可以发布你的整个安全配置 –

+0

[引擎收录](http://pastebin.com/6XWiNfff) 。谢谢! – user1116589

+0

我有一个非常类似于你的配置,我也使用FOSUserBundle(我不使用JMSSecurity额外的,但我不认为这很重要),我尝试了你的角色层次结构,对我来说它工作。 –

回答

0

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

role_hierarchy: 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 
     ROLE_ADMIN:  ROLE_B 
     ROLE_B:   ROLE_A 
     ROLE_A:   ROLE_USER 
+0

嗨Krzysztof,谢谢你的回复。 Accordig预定我确信,“轻微”角色应该首先:(http://symfony.com/doc/current/book/security.html#hierarchical-roles)。我会查一下。 – user1116589

+0

嗨,不幸的是它不起作用:/ – user1116589

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 
+0

请参阅[安全配置参考](http://symfony.com/doc/current/reference/configuration/security.html) –