Symfony3.3和FOSUserBundle2-拒绝访问(403禁止)问题,即使角色匹配

Symfony3.3和FOSUserBundle2-拒绝访问(403禁止)问题,即使角色匹配,symfony,fosuserbundle,access-denied,Symfony,Fosuserbundle,Access Denied,我有一个角色列表,这些角色相互继承。 如果我为一个用户分配了特定的角色,那么就没有问题,但是,如果我在层次结构的更高层分配了一个角色,那么继承的角色就不会被拾取,并且用户会收到一个拒绝访问的错误 角色: ROLE_USER: [] ROLE_MEMBER: [ROLE_USER] ROLE_ADMIN: [ROLE_MEMBER] ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 访问: - { path: ^/login$, rol

我有一个角色列表,这些角色相互继承。 如果我为一个用户分配了特定的角色,那么就没有问题,但是,如果我在层次结构的更高层分配了一个角色,那么继承的角色就不会被拾取,并且用户会收到一个拒绝访问的错误

角色:

ROLE_USER: []
ROLE_MEMBER: [ROLE_USER]
ROLE_ADMIN: [ROLE_MEMBER]
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
访问:

- { path: ^/login$, roles: [IS_AUTHENTICATED_ANONYMOUSLY], anon: true, methods: [GET] }
- { path: ^/logout$, roles: [IS_AUTHENTICATED_ANONYMOUSLY], anon: true, methods: [GET] }
- { path: ^/admin, roles: [ROLE_ADMIN], anon: false, methods: [GET, POST, PUT, DELETE, HEAD, LINK, UNLINK, PATCH] }
来自探查器:(登录到/admin后)

方法获取HTTP状态403 IP##########于2017年7月19日星期三19:27:00+0000 Token#####

FOSUser配置:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: CoreSys\CoreBundle\Entity\User
    use_listener: true
    from_email:
        address: webmaster@domain.com
        sender_name: admin

//security.yml
...
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            form_login:
                  provider:             fos_userbundle
                  csrf_token_generator: security.csrf.token_manager
                  use_forward:          true
                  use_referer:          true
                  always_use_default_target_path: false
                  default_target_path:            /
            logout:     true
            anonymous:  true
编辑:
我想我应该提到的是,我的角色/访问权限是由app/config中的一个辅助文件数据库和控制的,然后通过一个编译器过程注入安全层。roles/access对象似乎要求它作为数组而不是字符串

角色配置的前两行是什么意思?role\u USER拥有role\u GUEST,而role\u GUEST拥有role\u USER?我使用动态生成器创建角色列表。。他们都倾向于继承上一个。。我可能需要检查角色来宾继承角色\u用户已删除角色\u来宾,设置角色\u用户:[。。还是一样的问题我不知道我是否理解正确。告诉我用户的角色和他们想要访问的路径(哪里似乎有问题)
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: CoreSys\CoreBundle\Entity\User
    use_listener: true
    from_email:
        address: webmaster@domain.com
        sender_name: admin

//security.yml
...
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            form_login:
                  provider:             fos_userbundle
                  csrf_token_generator: security.csrf.token_manager
                  use_forward:          true
                  use_referer:          true
                  always_use_default_target_path: false
                  default_target_path:            /
            logout:     true
            anonymous:  true