2015-02-06 115 views
0

我使用SF2和FOS用戶包一起使用。FOSBundle重定向循環

security: 
    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 

    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt|error)|css|images|js)/ 
      security: false 

     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_provider: form.csrf_provider 
      logout:  true 
      anonymous: false 

    access_control: 
     - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/, role: ROLE_ADMIN } 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

如果我把我的main: anonymous: falsetrue,我不再得到一個重定向循環,但人們就不那麼需要先登錄才能訪問的一切(這是他們應該的!)

認爲access_control有一個^/login路由條目,以便人們不需要進行身份驗證,但我懷疑它不起作用。

回答

1

有了這個說法:

anonymous: false 

此不再有效:

- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY } 

因此,框架不能重定向到這將導致重定向循環登錄(FOS需要匿名的是真實的爲了正常工作)


...我不知道它是否有效,但你可以嘗試設置

{ path: ^/*, role: ROLE_USER } 

作爲資產控制的第一行或最後一行,...不保證它的工作原理,這是我會嘗試爲了創建你正在尋找的結果

+0

這工作,謝謝! – 2015-02-06 18:51:18