check_path" / login_check"登录方法" form_login"与防火墙模式不匹配" ^ / admin /(.*)"

时间:2016-05-13 09:36:36

标签: php symfony fosuserbundle

我正在使用Symfony 2.8FOSUserBundle创建一个用于身份验证的网站。

我希望网站公开给任何人,并且在登录身份验证后访问后台(前缀为/admin)。

我一直在收到错误:

  

check_path" / login_check"登录方法" form_login"不是   与防火墙模式匹配" ^ / admin /(.*)"。

我的app/config/security.yml看起来像是:

providers:

    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:

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

    admin:
        pattern:            ^/admin/(.*)
        form_login:
            provider:       fos_userbundle
            login_path:     /login
            check_path:     /login_check
            always_use_default_target_path: false
            default_target_path: /admin
        logout:
            path:           /logout
            target:         /login
        anonymous:    true

    main:
        anonymous: ~

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    #- { path: ^/login_check, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }

我知道form_login中有错误,但我真的无法理解......

PS: 已经提出了类似的问题,但没有很好的答案(或者对我而言适用的答案)。

1 个答案:

答案 0 :(得分:1)

我认为你的模式必须是这样的:

       admin:
            pattern: ^/admin/