Como efetuar login automaticamente em um novo usuário após o registro em um provedor de usuário personalizado no Silex?

Contexto: criei um provedor de usuário personalizado para o meu aplicativo Silex e agora posso registrar e registrar meu próprio usuário perfeitamente. No entanto, agora preciso fazer login automaticamente no meu usuário após o registro e isso não funciona.

Aqui está minha seção de segurança:

'secured' => array(
        'pattern' => '^/',
        'anonymous' => false,
        'form' => array('login_path' => '/login', 'check_path' => '/login_check'),
        'logout' => array('logout_path' => '/logout', 'invalidate_session' => true),
        'users' => $app->share(function () use ($app) {
            return new Partner\DAO\PartnerDAO($app['db']);
        })
    )

Aqui está o meu userProviderInterface:

public function refreshUser(UserInterface $user)
{
    if (!$user instanceof Partner) {
        throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_class($user)));
    }

    return $this->loadUserByUsername($user->getUsername());
}


public function supportsClass($class)
{
    return 'Partner\Entity\Partner' === $class;
}

Com o Xdebug, eu posso ver isso aqui:

  foreach ($this->userProviders as $provider) {
        try {
            $refreshedUser = $provider->refreshUser($user);
            $token->setUser($refreshedUser);

            if (null !== $this->logger) {
                $this->logger->debug('User was reloaded from a user provider.', array('username' => $refreshedUser->getUsername(), 'provider' => get_class($provider)));
            }

            return $token;

$this->userProviders contém apenas um provedor:'Users' => null

Observe que :

Login, registro e logout funcionam perfeitamente. Este erro é acionado apenas quando eu quero entrar automaticamente no meu usuário após o registro. Aqui está o código:

$token = new UsernamePasswordToken($partner, null, 'secured', $partner->getRoles());
// Note that $partner->getRoles()  is array('ROLE_USER')
$app['security.token_storage']->setToken($token);
return $app->redirect($app["url_generator"]->generate("partner_home"));

Após o registro, eu crio automaticamente o token e redireciono o usuário na área segura, mas o Silex o redireciona na página de login e, se eu clicar em algum lugar, recebo:

Não há provedor de usuário para o usuário "Partner \ Entity \ Partner".

Não sei mais onde procurar e realmente preciso de ajuda.

questionAnswers(1)

yourAnswerToTheQuestion