2014-06-05 36 views
0

我有一個使用FOSUserBundle的Symfony應用程序(不確定是否因爲防火牆存在問題)。它有2個防火牆,用於網站的不同部分。一個是前端,另一個是管理區域。Symfony:會話過期時使用了錯誤的防火牆

我遇到的問題是,當用戶登錄到前端,並在他們的會話過期後(如果他們沒有選擇記住登錄),他們被重定向到管理員防火牆註銷目標。

下面是我的安全文件中的防火牆配置:

jms_security_extra: 
    secure_all_services: false 
    expressions: true 

security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 

role_hierarchy: 
    ROLE_CLIENT:   ROLE_USER 
    ROLE_ACCOUNT_MANAGER: ROLE_CLIENT 
    ROLE_DESIGNER:  ROLE_USER 
    ROLE_PUBLISHER:  ROLE_DESIGNER 
    ROLE_ADMIN:   [ROLE_PUBLISHER, ROLE_ACCOUNT_MANAGER] 
    ROLE_SUPER_ADMIN:  [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

providers: 
    fos_userbundle: 
     id: fos_user.user_provider.username_email 

firewalls: 
    site: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      csrf_provider: form.csrf_provider 
      always_use_default_target_path: true 
      default_target_path: site_survey_launch 
      login_path: site_login 
      check_path: site_login_check 
      use_referer: true 
      success_handler: xd_authentication.event.listener 
     logout: 
      path: site_logout 
      target: site_login 
      success_handler: xd_authentication.event.listener 
     anonymous: true 
    portal: 
     pattern: ^/portal 
     form_login: 
      provider: fos_userbundle 
      csrf_provider: form.csrf_provider 
      always_use_default_target_path: true 
      default_target_path: portal_user_surveys_live 
      login_path: portal_login 
      check_path: portal_login_check 
     logout: 
      path: portal_logout 
      target: portal_login 
     anonymous: true 
     context: shared 
acl: 
    connection: default 

的網站登出配置的success_handler處理程序返回site_login重定向響應。更有理由對這個問題相當困惑。除非success_handler僅用於手動註銷過程。

任何幫助,這將不勝感激。我一直在努力弄清楚現在幾個月發生了什麼。

回答

0

我認爲防火牆定義的順序很重要,因爲site有模式^/,我認爲它處理來自^/portal url的請求。您應該在site防火牆之前定義portal防火牆。

+0

原來是這樣。今天早些時候我把它們交換了一遍,看它是否與訂單有關。只是改回來,再試一次,它仍然在發生。感謝您的輸入。 –