/** * {@inheritdoc} */ public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey) { if (is_subclass_of($token->getUser(), $this->userClass)) { return new PreAuthenticatedToken($token->getUser(), $token->getCredentials(), $providerKey, $token->getUser()->getRoles()); } $ssoToken = $this->tokenRepository->find($token->getCredentials()); if (!$ssoToken) { throw new AuthenticationException(); } $user = $userProvider->loadUserByUsername($ssoToken->getUsername()); return new PreAuthenticatedToken($user, $token->getCredentials(), $providerKey, $user->getRoles()); }