2012-06-23 15 views
7

Estoy tratando de escribir un oyente básico para el evento kernel.request en Symfony 2. La definición del servicio es bastante simple y las anotaciones provienen de JMSDiExtraBundle.El token de autenticación siempre es nulo en el evento kernel.request en Symfony 2?

los problemas es que $context->getToken() siempre es nula incluso el usuario está totalmente autenticado:

/** 
* @Service("request.set_messages_count_listener") 
* 
*/ 
class RequestListener 
{ 

    /** 
    * @var \Symfony\Component\DependencyInjection\ContainerInterface 
    */ 
    private $container; 

    /** 
    * @InjectParams({"container" = @Inject("service_container")}) 
    * 
    */ 
    public function __construct(ContainerInterface $container) 
    { 
     $this->container = $container; 
    } 

    /** 
    * @Observe("kernel.request", priority = 255) 
    */ 
    public function onKernelRequest(GetResponseEvent $event) 
    { 
     $context = $this->container->get('security.context'); 
     var_dump($context->getToken()); die(); 
    } 

} 

creo que mi configuración de seguridad está funcionando bien. ¿Cuál podría ser el problema entonces?

secured_area: 
    pattern: ^/app/ 
    switch_user: true 
    form_login: 
     check_path: /app/login_check 
     login_path: /app/login 
     default_target_path: /app/dashboard 
     always_use_default_target_path: true 
    logout: 
     path: /demo/secured/logout # TODO 
     target: /demo/    # TODO 

access_control: 
    - { path: ^/app/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/app/users, roles: ROLE_MNG_USERS } 
    - { path: ^/app/messages, roles: ROLE_MNG_USERS } 
    - { path: ^/app/roles, roles: ROLE_MNG_PACKAGES_FEATURES } 
    - { path: ^/app/packages, roles: ROLE_MNG_PACKAGES_FEATURES } 
    - { path: ^/app/,   roles: ROLE_USER } 

Respuesta

19

Con priority = 255, su oyente se llama antes del cortafuegos de seguridad (priority = 8, look here).

Intente cambiar su prioridad.

+0

Gracias, funciona ahora. – gremo

+0

Mira aquí https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Security/Http/Firewall.php#L93, gracias. :) – umpirsky

Cuestiones relacionadas