显然找不到Symfony2.5 + FOSUserBundle检查路径

时间:2014-06-30 20:29:37

标签: symfony fosuserbundle

我开始使用FOSUserBundle的新Symfony应用程序。 我安装它,加载捆绑并配置它。 这是我的configuration.yml

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Myapp\UserBundle\Entity\User

和我的security.yml

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

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
        in_memory:
            memory: ~

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

        default:
            anonymous: ~

        main:
            pattern: ^/
            form_login:
                login_path: fos_user_security_login
                check_path: fos_user_security_check
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
                default_target_path: /
            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 }

现在,当我转到localhost/myapp/web/app_dev.php/login时,我尝试登录后收到以下错误500(我在访问登录表单时没有问题,这是在我提交之后):

  

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

在我看来,我的安全防火墙配置中配置了form_login ...我缺少什么?

1 个答案:

答案 0 :(得分:8)

我在想你没有导入FOSUserBundle的路由文件。你呢?

如果不这样你就是这样做的:

http://symfony.com/doc/current/bundles/FOSUserBundle/index.html#step-6-import-fosuserbundle-routing-files

除此之外,default防火墙的目的是什么?当它试图“找到正确使用的防火墙”时,它可能会拦截安全组件。