Как программно аутентифицировать пользователя symfony для другого брандмауэра?

У меня есть security.yml как:

security:  
  firewalls:    
    first_area:  
      pattern: ^/someStr  
      ********  
    second_area:  
      pattern: ^/otherStr  
      ********  

И я могу войти в систему пользователя в том же разделе брандмауэра, но я не могу войти в систему пользователя в другом разделе брандмауэра. Я делаю это так:

$token = new UsernamePasswordToken(user, null, 'second_area', userRoles);  
$security->setToken($token);

person Sepuka    schedule 15.04.2014    source источник
comment
Я решил эту проблему таким образом: $this->get('session')->set('_security_NAME-OF-SECTION', serialize($token)); в контроллере вместо $security->setToken($token);   -  person Sepuka    schedule 16.04.2014
comment
См. также stackoverflow.com/q/30835493/1668200.   -  person Thomas Landauer    schedule 04.01.2019


Ответы (1)


Совместное использование контекста является более правильным способом, чем сохранение токена в сеансе вручную: http://symfony.com/doc/current/reference/configuration/security.html#reference-security-firewall-context

person megazoll    schedule 22.04.2014