Я разрабатываю проект в Symfony2 (.0.x), и я создаю простую систему автоматического входа в систему. Теперь для этого нужно прослушать событие, которое запускает метод handle() в брандмауэре. Проблема только в том, что я не могу понять, как это сделать. (Я также использую FOSUserBundle в сочетании с FOSFacebookbundle)Прослушать метод дескриптора брандмауэра symfony
Кто-то, кто мог мне помочь. (Или скажите мне, если я делаю все это неправильно)
Это моя служба:
project.user.auto_login_listener:
class: Project\UserBundle\Listener\AutoLoginListener
public: false
abstract: true
arguments: [@security.context, @security.authentication.manager, '' , '' , @logger, @event.dispatcher]
Я удалил свой слушатель событий в этом примере, потому что он не работает
<?php
namespace Project\UserBundle\Listener;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\Log\LoggerInterface;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\Security\Http\SecurityEvents;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Security\Http\Firewall\ListenerInterface;
class AutoLoginListener implements ListenerInterface {
private $authenticationManager;
private $dispatcher;
private $logger;
private $providerKey;
private $securityContext;
private $tokenParam;
public function __construct(SecurityContextInterface $securityContext, AuthenticationManagerInterface $authenticationManager, $providerKey, $tokenParam, LoggerInterface $logger = null, EventDispatcherInterface $dispatcher = null)
{
$this->securityContext = $securityContext;
$this->authenticationManager = $authenticationManager;
$this->providerKey = $providerKey;
$this->tokenParam = $tokenParam;
$this->logger = $logger;
$this->dispatcher = $dispatcher;
}
public function handle(GetResponseEvent $event)
{
die("test");
}
}
?>
Спасибо!