2012-02-27 54 views
10

利用這種配置:Symfony2的和匿名訪問某些航線

firewalls: 
    login: 
     pattern: ^/login$ 
     anonymous: ~ 
     security: false 

    foo: 
     pattern: ^/foo$ 
     anonymous: ~ 
     security: false 

    secured_area: 
     pattern: ^/ 
     form_login: 
      login_path: /login 
      check_path: /login_check 
     logout: 
      path: /logout 
      target:/

access_control: 
    - { path: ^/, roles: ROLE_ADMIN } 
    - { path: ^/foo, roles: IS_AUTHENTICATED_ANONYMOUSLY } 

我希望能夠使/foo匿名訪問。但是,當我試圖在清除緩存後嘗試去那裏時,它不會允許我重定向到登錄屏幕。

如何讓一條路線匿名訪問,同時保留要保護的系統的其餘部分?

回答

12

更換

- { path: ^/foo, roles: IS_ANONYMOUS } 

- { path: ^/foo, roles: IS_AUTHENTICATED_ANONYMOUSLY } 

UPDATE

而且,我相信,你將不得不增加

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

˚F或身份驗證才能正常工作。

欲瞭解更多信息退房避免常見陷阱部分here

+0

好的問題更新,我試了一下,但它仍然重定向登錄(我也清除了緩存)。 – Tower 2012-02-27 09:15:54

+0

好吧,看起來喜歡它只是因爲某種原因不適用於'dev'環境。 – Tower 2012-02-27 09:18:09

+0

@rFactor,現在很難說出什麼問題。嘗試在日誌中找到線索。 – 2012-02-27 09:30:08