2016-02-22 2 views
1

Я использую Symfony 2.8.2 с FOSUserBundle. Когда я пытаюсь выйти из системы, я получил следующее сообщение об ошибке:FOSUserBundle - вы должны активировать выход в конфигурацию брандмауэра безопасности.

You must activate the logout in your security firewall configuration

Вот мой security.yml

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

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    firewalls: 
     main: 
      pattern: ^/login 
      form_login: 
       provider: fos_userbundle 
       csrf_token_generator: security.csrf.token_manager 
      anonymous: true 
      logout: 
       path: /logout 
       target: /login 

    access_control: 
     - { path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/, role: ROLE_ADMIN } 
     - { path: ^/, role: ROLE_USER } 

Я также попытался установить выход из системы: истинный, но ничего не изменилось.

P.S. Я не использую Sonata, просто FOSUserBundle.

По какой причине я получаю эту ошибку?

+1

выглядит как дубликат http://stackoverflow.com/questions/14941989/fosuserbundle-logout-with-prefix-doesnt-work – takeit

+0

Не совсем, это решение не работает для меня. – elec

ответ

1

Похоже, у вас неправильный шаблон для main брандмауэр.

Установка pattern: ^/login делает этот брандмауэр действительным только для соответствия URL-адресов, который является только /login URL.

Кроме того, URL-адрес выхода должен находиться внутри защищенной зоны брандмауэра.

Смежные вопросы