2014-09-15 9 views
0

Я использую FOSUserBundle в текущем проекте, и все работает нормально, но у меня небольшая проблема, когда я закрываю сессию, потому что я перехожу к индексу приложения, а не остаюсь в безопасности (защищенный), который составляет /admin/login, где находится форма входа в систему. Это мой security.yml:Продолжить путь при выходе пользователя из системы в FOSUserBundle

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

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username_email 

    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_provider: form.csrf_provider 
      logout: 
       path: /logout 
       target: /admin 
       invalidate_session: false 
      anonymous: true 

    access_control: 
     - { path: ^/admin, role: ROLE_ADMIN } 

кто-нибудь может сказать мне, где я делаю ошибку?

+0

Может быть, я не правильно понял, но, является ли ваша форма входа в «защищенную зону»? – DonCallisto

+0

@DonCallisto да это – ReynierPM

+0

Итак, как вы можете войти, если сама форма входа находится в защищенной зоне? – DonCallisto

ответ

1

Я думаю, что это anonymous: true. Если вы хотите, в основном весь сайт находится под контролем доступа, причем без каких-либо страниц отдельно от страницы входа станут доступными для кого-то не вошли в систему, то вы хотите что-то вроде этого:

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

     role_hierarchy: 
      ROLE_ADMIN:  ROLE_USER 
      ROLE_SUPER_ADMIN: ROLE_ADMIN 

     providers: 
      fos_userbundle: 
       id: fos_user.user_provider.username_email 

     firewalls: 
      dev: 
       pattern: ^/(_(profiler|wdt)|css|images|js)/ 
       security: false 
      main: 
       pattern: ^/ 
       form_login: 
        provider: fos_userbundle 
        csrf_provider: form.csrf_provider 
       logout: 
        path: /logout 
        target: /admin 
        invalidate_session: false 
       anonymous: ~ # NO ANONYMOUS ACCESS 

     access_control: 
      - { path: ^/admin, role: ROLE_ADMIN } 
      # anonymous visitors need to be able to get to the logon pages 
      - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY } 
      - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
      # Could also add "safe" routes like an "about" or "contact us" pages here if you like 
      - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }