防火墙使用check_path路由/路径来捕获登录请求。
这条路线的行动从未真正被访问过。这是您的登录表单发布到的路由/URL,并且该请求应由您的防火墙的提供商服务处理。
如果check_path
正在执行路由的操作,则防火墙有问题(您的防火墙未处理请求)。
正如您在此处看到的, FOSUserBundle 的 check_path 被路由到SecurityController::checkAction
并仅抛出一个RuntimeException
.
check_path 的配置可以在app/config/security.yml
下面 找到security.firewalls.<firewallname>.form_login.check_path
。
它可以是类似于模式的模式,也可以是/login_check
您的情况下的路由名称,即just2_frontend_logincheck
,但没有潜在的操作。
security:
providers:
your_provider_name: your_provider_service # authentication provider
# ...
firewalls: # Required
your_firewall_name:
# ...
provider: your_provider_name
form_login:
check_path: /login_check # submit the login form here
# in your case a route name:
# just2_frontend_logincheck
在后台 symfony 调用authenticate()
服务的方法your_provider_service
来检查提供的凭据。
您可以使用以下方法找到用作提供者服务的类:
app/console debug:container --show-private your_provider_service