2015-02-09 139 views
4

我是Symfony2的新手。我閱讀文檔,看到一些配置的登錄表單 http://symfony.com/doc/current/cookbook/security/form_login_setup.htmlSymfony2身份驗證方法在同一個防火牆中

# app/config/security.yml 
security: 
    # ... 

    firewalls: 
     default: 
      anonymous: ~ 
      http_basic: ~ 
      form_login: 
       login_path: /login 
       check_path: /login_check 

我不明白爲什麼有2種安全方法http_basic和form_login在同一個防火牆?安全系統將使用哪種方法? http_basic或form_login或兩者?它是多餘的嗎? 上面的一些問題看起來很愚蠢,但看起來symfony2安全組件文檔很差。

回答

3

在舊Symfony文檔有一個小尖:

當用戶沒有被認證,並且如果存在不止一個 認證機制,Symfony2的自動定義默認 入口點(在上述的例子,登錄表單;但如果用戶 發送帶有錯誤憑證的Authorization HTTP標頭,則Symfony2 將使用HTTP基本入口點)。

但是,在下一個版本文檔重新組織時,它減少了,我不知道爲什麼。

因此,我在symfony-docs知識庫GitHub中打開了一個new issue,並提出了恢復提示的建議。

@WouterJ的回答報價:

的代碼似乎在 引用的段落描述不再起作用。它似乎總是使用表單登錄,除非有 是沒有身份驗證頭髮送和HTTP基本憑據是 正確。

所以你是對的 - 它不是微不足道的。如果您想知道結論,請遵循這個問題。

+0

我知道http_basic和form_login,但我很困惑於食譜中的配置。爲什麼在同一個防火牆中有兩種安全方法?如果我們有form_login,http_basic是多餘的? – Geany 2015-02-09 09:06:28

+1

@Geany:你說得對 - 找到答案並不是微不足道的。我將發佈一個問題到'Symfony'文檔。 – chapay 2015-02-10 12:47:20

+1

好的,謝謝@Andrey。現在我想挖掘安全組件來構建自定義身份驗證,但它似乎是安全組件,並且捆綁了很少的信息並且很難理解。 – Geany 2015-02-10 12:58:13