sar*_*nan 28 yaml symfony symfony-2.3 symfony-routing
我正在研究具有以下路由代码的symfony 2.3项目
just2_frontend_logincheck:
pattern: /login_check
Run Code Online (Sandbox Code Playgroud)
它没有
defaults:{ _controller: testBundle:User:login }
Run Code Online (Sandbox Code Playgroud)
但它正在发挥作用.但我不知道路由是如何工作的.可能吗?请告诉我有关路由的信息.
Nic*_*ich 47
该check_path路线/路径使用防火墙赶上登录请求.
永远不会真正访问此路线的操作.这是您的登录表单发布到的路由/网址,请求应由您的防火墙提供商服务处理.
如果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
Run Code Online (Sandbox Code Playgroud)
在引擎盖下,symfony调用authenticate()服务的方法your_provider_service来检查提供的凭据.
您可以使用以下命令找到用作提供者服务的类:
app/console debug:container --show-private your_provider_service
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24650 次 |
| 最近记录: |