FOSUserBundle: Redirige l'utilisateur après s'être enregistré avec EventListener

Je veux rediriger l'utilisateur vers une autre forme juste après l'enregistrement, avant qu'il puisse accéder à quoi que ce soit sur mon site (comme dans https://github.com/FriendsOfSymfony/FOSUserBundle/issues/387).

J'ai donc créer un eventListener comme dans la doc :

<?php
namespace rs\UserBundle\EventListener;

use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\UserEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;

/**
 * Listener responsible to change the redirection at the end of the password resetting
 */
class RegistrationConfirmedListener implements EventSubscriberInterface
{
    private $router;

    public function __construct(UrlGeneratorInterface $router)
    {
        $this->router = $router;
    }

    /**
     * {@inheritDoc}
     */
    public static function getSubscribedEvents()
    {
        return array(
                FOSUserEvents::REGISTRATION_CONFIRMED => 'onRegistrationConfirmed'
        );
    }

    public function onRegistrationConfirmed()
    {
        $url = $this->router->generate('rsWelcomeBundle_check_full_register');
        $response = new RedirectResponse($url);
        return $response;
    }
}

Services.yml :

services:
    rs_user.registration_completed:
        class: rs\UserBundle\EventListener\RegistrationConfirmedListener
        arguments: [@router]
        tags:
            - { name: kernel.event_subscriber }

Mais ça ne fonctionne pas, l'utilisateur s'inscrire, il cliquez sur le lien de confirmation dans sa boîte aux lettres, il n'est pas redirigé sur la page que je veux, il est connecté et j'ai juste le message qui dit que le compte est confirmé.

Pourquoi il ne veut pas me diriger vers la route : rsWelcomeBundle_check_full_register comme je veux ?

Grâce

source d'informationauteur user2178964