2013-02-09 22 views
0

我想整個網站通過登錄與FOSUserBundle安全。 我試圖設置security.yml這樣的:安全整個網站,除了登錄頁面

firewalls: 
    login: 
     pattern: ^/login 
     anonymous: ~ 
     form_login: 
      provider: fos_userbundle 
      csrf_provider: form.csrf_provider 

    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      csrf_provider: form.csrf_provider 

但是當時我不知道是什麼在config.yml設置

fos_user: 
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' 
    firewall_name: main 
    user_class: My\UserBundle\Entity\User 

無論我嘗試我無法登錄,或仍得到以下錯誤:

您必須在安全防火牆配置中配置要由防火牆使用 form_login處理的檢查路徑。

編輯:從這裏開始第二反應似乎工作: Symfony 2 - firewall and access control issue

回答

1

您的登錄防火牆可意外需要login_check應該駐留在主防火牆。你不必在你的配置在登錄防火牆改變任何東西,除了一兩件事:

firewalls: 
    login: 
     pattern: ^/login$ 

如果你沒有注意到,就在最後一個$,這使得確保只有路徑/login匹配,但不是像/login_check這樣的路徑。

Access_control和更改@Patt建議不是必需的。

+0

相關提示@mahok!謝謝。 – Mick 2013-02-10 11:33:33

+0

@Patt很容易錯過。但是,一旦你花了半個小時尋找問題,解決方案堅持;) – dbrumann 2013-02-10 11:35:54

+0

不錯。我終於使用了我在後面鏈接的答案,但很高興知道login_check應該包含在主路由中。 – user364622 2013-02-10 11:52:54