我上的symfony 2.3項目的工作具有以下路由代碼登錄check_path路由如何在沒有默認控制器/操作的情況下工作?
just2_frontend_logincheck:
pattern: /login_check
它沒有
defaults:{ _controller: testBundle:User:login }
但它的工作。但我不知道路由如何工作。可能嗎?請告訴我關於路由。
我上的symfony 2.3項目的工作具有以下路由代碼登錄check_path路由如何在沒有默認控制器/操作的情況下工作?
just2_frontend_logincheck:
pattern: /login_check
它沒有
defaults:{ _controller: testBundle:User:login }
但它的工作。但我不知道路由如何工作。可能嗎?請告訴我關於路由。
check_path路由/路徑被防火牆用來捕獲登錄請求。
此路線的行爲從未真正被訪問過。這是登錄表單發佈到的路由/ URL,並且請求應該由防火牆的提供商服務處理。
如果check_path
路由的操作正在執行,則防火牆出現問題(該請求未由防火牆處理)。
正如你可以看到here FOSUserBundle「S 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調用服務your_provider_service
的authenticate()
方法來檢查提供的憑證。
你可以找到作爲使用提供服務類:
app/console container:debug --show-private your_provider_service
感謝土特產品非常nifr – saravanan
從哪裏開始調試如果路由是*不*防火牆處理? – hchr
@hchr - 通過調試路由器來開始測試'check_path'的路由是否存在:'app/console debug:router | grep -i'。然後註釋掉/除了'security.firewalls'下的一個防火牆以外的所有防火牆,並將該單個防火牆的配置細化到最低**。我的答案顯示了一個最小的示例,應該足以在'/ login_check'處捕獲請求 –
nifr