登录方法"form_login"的check_path "/login_check"与防火墙特征码不匹配"^/admin/(.*)"



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

我希望网站对任何人都是公开的,并且后台(前缀为/admin)在登录验证后可以访问。

我只是不断得到错误:

登录方法"form_login"的check_path"/login_check"不是与防火墙模式"^/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:有人问过类似的问题,但没有很好的答案(或者对我有用的答案)

我认为您的模式应该是这样的:

       admin:
            pattern: ^/admin/

最新更新