我正在使用Symfony 2.8
和FOSUserBundle
创建一个用于身份验证的网站。
我希望网站公开给任何人,并且在登录身份验证后访问后台(前缀为/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: 已经提出了类似的问题,但没有很好的答案(或者对我而言适用的答案)。
答案 0 :(得分:1)
我认为你的模式必须是这样的:
admin:
pattern: ^/admin/