为什么我的symfony2 fosUserBundle无法找到check_path?

时间:2012-07-31 16:56:05

标签: php security session symfony fosuserbundle

我正在尝试在我的symfony项目中实现fosUserBundle。

我已成功安装了已配置的软件包。

但现在,当我登录时,我收到此错误消息:

  

您必须使用安全防火墙配置中的form_login配置防火墙处理的检查路径。

为什么会这样?我应该在哪里寻找那个pb?

谢谢你,你会在安全文件下面找到:

security:
    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        fos_userbundle:
            id: fos_user.user_manager
        in_memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }

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

        # Firewall pour les pages de connexion, inscription, et récupération de mot de passe
        login:
            pattern:   ^/(login$|register|resetting)  # Les adresses de ces pages sont login, register et resetting
            anonymous: true                           # On autorise bien évidemment les anonymes sur ces pages !

        admin:
            switch_user:        true
            context:            user
            pattern:            /admin(.*)
            form_login:
                provider:       fos_userbundle
                login_path:     /login
                use_forward:    false
                check_path:     /admin/login_check
                failure_path:   null
                use_referer:    true
            logout:
                path:           /admin/logout
                target:         /login_path
    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }

对于其余文件,它与the official documentation

非常相似

1 个答案:

答案 0 :(得分:0)

您是否尝试删除“access_control”部分中的第一行? 因为您已经在登录防火墙中指定了匿名:true。