2014-10-03 47 views
1

首先我不是Symfony 2的專家,但我想了解symfony SecurityBundle是如何工作的。Symfony 2安全包如何註冊到內核事件

我在文檔中看到,會話的基本實現可能是將EventListener註冊到內核事件。 然後我開始考慮更復雜的SecurityBundle來理解它,但是我無法在Bundle中的security.yml或method中找到任何配置來註冊任何事件。 我知道Bundle的工作原理,但我想了解它如何綁定到Request-> Response流來攔截和過濾請求。

預先感謝...

+1

驗證提供程序是Symfony 2的更復雜功能之一。各種服務和註冊都是動態完成的,因爲它們可能因不同的防火牆。大多數有趣的代碼都存在於SecurityBundle \ DependencyInjection中。通讀:http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html以瞭解所有事情。好玩的東西。挑戰掌握,但最終值得。 – Cerad 2014-10-03 15:03:18

回答

1

symfony的安全組件應要求只有一個內核監聽器,當然,和CERAD在評論表示:「各種服務和註冊都是動態完成,因爲它們可以是不同的對於不同的防火牆「,基本上它就像內核偵聽器(2)中的自定義偵聽器(1),內核偵聽器的定義在SecurityBundle(3)中,來自app/config/security.yml的創建服務的魔力在SecurityExtension (4)SecurityBundle。

基本上,要將symfony安全性集成到非symfony項目中,您需要在AppKernel中添加SecurityBundle,所以最難的部分是擁有與其他系統共存的AppKernel。

(1)的Symfony \元器件\安全\ HTTP \防火牆\ ListenerInterface (2)的Symfony \元器件\安全\ HTTP \防火牆 (3)/供應商/ symfony的/ symfony的/ SRC/Symfony的/捆綁/ SecurityBundle /資源/ config/security.xml(4)Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension