Mongodb 在symfony 2中始终403拒绝访问,尽管我的用户在数据库中具有角色

Mongodb 在symfony 2中始终403拒绝访问,尽管我的用户在数据库中具有角色,mongodb,symfony,fosuserbundle,symfony-security,Mongodb,Symfony,Fosuserbundle,Symfony Security,我一直拒绝403的访问, 这是我的安全 security: role_hierarchy: Livreur: Livreur Producteur: Producteur Admin: Admin providers: fos_userbundle: id: fos_user.user_provider.username encoders:

我一直拒绝403的访问, 这是我的安全

security:
    role_hierarchy:
        Livreur:       Livreur
        Producteur:    Producteur
        Admin:         Admin

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin, role: Admin }
我想访问{url}/app_dev.php/admin,总是403

我正在使用mongodb数据库,这是我在mongo中的文档:

如果我对当前用户进行测试,我会得到:

$this->container->get('security.context')->isGranted('Admin') 
or
$this->container->get('security.context')->isGranted('ADMIN') 
它总是假的


请提供帮助

我认为所有角色名称都应该以role\前缀开头 您需要使用角色\管理。
我也遇到过类似的问题,但当我更改角色名称时,问题已经解决。

我发现解决方案是任何角色都必须有前缀“role”,因此我将role\u**添加到我的3个角色中
$this->container->get('security.context')->isGranted('Admin') 
or
$this->container->get('security.context')->isGranted('ADMIN')