2015-10-26 149 views
0

中註銷我有2防火牆(一個用於管理面板和一個用於註冊用戶)和2內存提供商(一個用於管理員和一個爲註冊用戶)爲我的Symfony2應用程序 - 太動態吧?Symfony2的多個防火牆:從其他防火牆

現在,我試圖訪問路線爲註冊用戶,轟!按預期提供了一個BasicAuth對話框。

接下來,當我試圖訪問admin的路由時,我又再次看到另一個BasicAuth對話框 - 也如預期的那樣。

但是,當我瀏覽回任何註冊用戶'的路線,我再次提出與基本驗證對話框,這是我的結論是,每次我問我與防火牆的身份驗證對話框,該航線相匹配的憑證我正在瀏覽,我從另一個防火牆自動註銷。

這是我的security.yml文件。

security: 

    role_hierarchy: 
     ROLE_ADMIN: ROLE_USER 

    providers: 
     walang_forever: 
      memory: 
       users: 
        user: 
         password: test 
         roles: 'ROLE_USER' 
     nailad_forever: 
      memory: 
       users: 
        admin: 
         password: test 
         roles: 'ROLE_ADMIN' 

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

     admin_gugma: 
      pattern: ^/admin 
      http_basic: 
       provider: nailad_forever 

     main_gugma: 
      pattern: ^/user 
      http_basic: 
       provider: walang_forever 

    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 

    access_control: 
     - { path: ^/admin, roles: ROLE_ADMIN } 
     - { path: ^/user, roles: ROLE_USER } 

我想要的只是每個防火牆登錄一次。

任何類似的體驗?或提出解決方案?

+0

試試這個[http://symfony.com/doc/current/reference/configuration/security.html#firewall-context](http://symfony.com/doc/current/reference/configuration /security.html#firewall-context) – kba

回答

1

使用invalidate_session:兩個退出防火牆設置錯誤:

logout: 
    path:    mylogoutpath 
    target:   MyBundle_homepage 
    invalidate_session: false 

的invalidate_session:虛假的伎倆。 請參閱:https://codedump.io/share/OfziwjHXBHbB