通过symfony cookbook进行基本配置后,FOSUserBundle出现InvalidConfigurationException

时间:2016-02-12 11:45:29

标签: php symfony

我为我的symfony包配置了FOSUserBundle(遵循cookbook http://symfony.com/doc/1.3.x/bundles/FOSUserBundle/index.html)。 当我尝试访问登录页面时出现此错误:

You are not allowed to define new elements for path "security.firewalls". Please define all elements for this path in one config file.

我的seurity.yml文件是:

security:
encoders:
    FOS\UserBundle\Model\UserInterface: bcrypt

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: security.csrf.token_manager # Use form.csrf_provider instead for Symfony <2.4
        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: ROLE_ADMIN }

我无法理解问题是什么,有什么建议吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

我看到的第一个问题是你的yaml安全文件中的缩进问题:

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: security.csrf.token_manager # Use form.csrf_provider instead for Symfony <2.4
            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: ROLE_ADMIN }

仔细检查https://symfony.com/doc/master/bundles/FOSUserBundle/index.html处提供的文档,检查路线,清除缓存并正常完成;)

如果遇到任何其他问题,请随时回到这里。

最诚挚的问候。