Вопрос по events, symfony, authentication – Токен аутентификации всегда равен null в событии kernel.request в Symfony 2?

9

Я пытаюсь написать базовый слушатель дляkernel.request событие в Symfony 2. Определение сервиса довольно простое, и аннотации приходят из JMSDiExtraBundle.

Проблема в том, что$context->getToken() is always null даже пользователь полностью аутентифицирован:

/**
 * @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();
    }

}

Я думаю, что мои настройки безопасности работают нормально. В чем может быть проблема тогда?

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 }

Ваш Ответ

1   ответ
21

priority = 255, ваш слушатель называется ДО брандмауэра безопасности priority = 8, мотри сюд).

Попытайтесь изменить свой приоритет.

Спасибо, работает сейчас. gremo
Смотри сюда Github.com / Symfony / Symfony / BLOB / Master / SRC / Symfony / Component / ..., Благодарность. :) umpirsky

Похожие вопросы