2013-07-01 34 views

回答

42

check_path路由/路徑被防火牆用來捕獲登錄請求。

此路線的行爲從未真正被訪問過。這是登錄表單發佈到的路由/ URL,並且請求應該由防火牆的提供商服務處理。

如果check_path路由的操作正在執行,則防火牆出現問題(該請求未由防火牆處理)。

正如你可以看到here FOSUserBundle「S check_path被路由到SecurityController::checkAction,只是拋出一個RuntimeException

的check_path的配置可以在app/config/security.ymlsecurity.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_serviceauthenticate()方法來檢查提供的憑證。

你可以找到作爲使用提供服務類:

app/console container:debug --show-private your_provider_service 
+0

感謝土特產品非常nifr – saravanan

+0

從哪裏開始調試如果路由是*不*防火牆處理? – hchr

+0

@hchr - 通過調試路由器來開始測試'check_path'的路由是否存在:'app/console debug:router | grep -i '。然後註釋掉/除了'security.firewalls'下的一個防火牆以外的所有防火牆,並將該單個防火牆的配置細化到最低**。我的答案顯示了一個最小的示例,應該足以在'/ login_check'處捕獲請求 – nifr

相關問題