【问题标题】:Symfony2 access-control give me 403 errorSymfony2 访问控制给我 403 错误
【发布时间】:2017-07-19 02:06:07
【问题描述】:

我知道我的标题不是很清楚。我解释我,我创建一个安全:

security:
encoders:
   Bundles\UserBundle\Entity\user: sha512

role_hierarchy:
    ROLE_MENAGE:        [ROLE_USER]
    ROLE_EMPLOYE:       [ROLE_ADMIN]
    ROLE_GERANT:        [ROLE_SUPER_ADMIN]
    ROLE_INTERCOMMUNAL: [ROLE_GERANT]

providers:
    main:
        id: fos_user.user_provider.username

firewalls:
    main:
        pattern:        ^/
        anonymous:      true
        provider:       main
        form_login:
            login_path: fos_user_security_login
            check_path: fos_user_security_check
        logout:
            path:       fos_user_security_logout
            target:     /login
        remember_me:
            key:        %secret%
access_control:
    - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, roles: ROLE_MENAGE }
    - { path: ^/resetting, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_MENAGE }
    - { path: ^/EncoderDechet, roles: ROLE_EMPLOYE }
    - { path: ^/VoirConteneurs, roles: ROLE_GERANT }
    - { path: ^/GenererFacture, roles: ROLE_INTERCOMMUNAL }
    - { path: ^/Statistique, roles: ROLE_GERANT }

就像您在这个 SECURITY.YML 中看到的那样,我定义了一个角色层次结构。当我使用具有 ROLE_EMPLOYE 作为角色的用户登录时,我可以访问 /register。但是这条路径必须具有角色:EMPLOYE,它给我一个 403:拒绝访问。

你能解释一下我哪里出错了吗?

【问题讨论】:

  • 很抱歉是 403

标签: symfony


【解决方案1】:

您的角色层次结构看起来不对。

应该是

ROLE_B: ROLE_A
ROLE_C: ROLE_B
ROLE_D: ROLE_C

类似

ROLE_MENAGE:        ROLE_USER
ROLE_EMPLOYE:       ROLE_MENAGE
ROLE_GERANT:        ROLE_EMPLOYE
ROLE_INTERCOMMUNAL: ROLE_GERANT

这会给你 5 个角色:USER

如果您确实需要 ROLE_ADMINROLE_SUPER_ADMIN,只需将它们添加到您需要的位置即可。

这是我在当前项目中使用的示例

ROLE_INFLUENCER:    ROLE_USER
ROLE_COMPANY:       ROLE_INFLUENCER
ROLE_COMPANY_ADMIN: ROLE_COMPANY
ROLE_SITE_ADMIN:    ROLE_COMPANY_ADMIN
ROLE_SUPER_ADMIN:   ROLE_SITE_ADMIN

【讨论】:

  • ROLE_MENAGE: [ROLE_USER] ROLE_EMPLOYE: [ROLE_MENAGE] ROLE_GERANT: [ROLE_EMPLOYE] ROLE_INTERCOMMUNAL: [ROLE_GERANT] 喜欢这样吗?
  • 你不需要 [ ] 字符,否则看起来没问题
猜你喜欢
  • 2013-07-02
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
相关资源
最近更新 更多