Escuche el método handle del cortafuegos Symfony

Estoy desarrollando un proyecto en Symfony2 (.0.x) y estoy creando un sistema de inicio de sesión automático simple. Ahora, para hacer eso, quiero escuchar el evento que activa el método handle() en el Firewall. El único problema es que no puedo encontrar cómo hacerlo. (También estoy usando FOSUserBundle combinado con FOSFacebookbundle)

Alguien que me pueda ayudar. (O dime si lo estoy haciendo todo mal)

Este es mi servicio:

project.user.auto_login_listener:
        class: Project\UserBundle\Listener\AutoLoginListener
        public: false
        abstract: true
        arguments: [@security.context, @security.authentication.manager, '' , '' , @logger, @event.dispatcher]

Eliminé mi detector de eventos en este ejemplo porque no funciona

<?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");
    }  
}
?>

¡Gracias!

preguntado el 12 de junio de 12 a las 13:06

1 Respuestas

Tienes que crear un nuevo proveedor de autenticación. Seguir este entrada de libro de cocina.

Respondido el 12 de junio de 12 a las 19:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.