2013-03-05 45 views
0

我在我的symfony2項目中安裝了FOS UserBundle。登錄/註銷的作品,唯一的問題是,系統不會重定向/關閉我想關閉的部分。 整個網站只能由用戶訪問。 但我可以調用任何路線。FOS UserBundle訪問控制不起作用

我在我的安全yml的訪問控制部分填入數據,但它不起作用。我可以調用mydomain/de_CH/anything/i/want /並訪問該內容。

這是我security.yml:

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

    encoders: 
    FOS\UserBundle\Model\UserInterface: sha512 

    firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
     provider: fos_userbundle 
     login_path: fos_user_security_login 
     check_path: fos_user_security_check 
     csrf_provider: form.csrf_provider 
     logout: 
     path: fos_user_security_logout 
     anonymous: true 

    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 } 
    - { path: ^/my-admin/, role: ROLE_ADMIN } 
    - { path: ^/$, role: ROLE_USER } 
    #- { path: ^/$, role: ROLE_USER } 

    role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 
+1

愚蠢的問題,但你有沒有試過在新的隱身瀏覽器窗口中訪問頁面?你可能有一個會話cookie約在 – JamesHalsall 2013-03-05 08:52:37

+0

@Jaitsu:沒有。好猜還是。 – 2013-03-05 12:16:44

回答

0

變化

- { path: ^/$, role: ROLE_USER } 

- { path: ^/.*, role: ROLE_USER } 

這是因爲,第一正則表達式告訴你,讓ROLE_USER到路徑與模式/
所以,諸如/foo/foo/bar等模式不能從您的防火牆獲得。

二圖案覆蓋後一種情況下

+0

這確實導致了一個重定向循環:( – 2013-03-05 12:18:45

0

取出anonymous: true部分,並把/login到它自己的防火牆,這樣用戶就可以登錄。 的anonymous部分允許匿名用戶訪問防火牆。

firewalls: 
    login_firewall: 
     pattern: ^/login$ 
     anonymous: ~ 
    main: 
     pattern: ^/ 
     form_login: 
      # ... 
     logout: 
      path: fos_user_security_logout 

編輯:由於我們拒絕匿名用戶訪問該頁面,我們需要爲/login創建單獨的防火牆,否則他們將無法登錄的 參見「避免常見問題」。官方文檔: http://symfony.com/doc/current/book/security.html有關該主題的更多信息。

+0

登錄已被所有用戶訪問。如果你禁用匿名用戶,請查看'access_control'部分 – DonCallisto 2013-03-05 09:23:24

+0

,它不會是 – 2013-03-05 09:25:05

+0

'anonymous:true' ...... Anonymous is not禁用 – DonCallisto 2013-03-05 09:44:41