/** * {@inheritDocs} */ public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey) { list($uid, $timestamp, $hashedPassword) = $token->getCredentials(); /** @var $userProvider \Bangpound\Bundle\DrupalBundle\Security\User\UserProvider */ $username = $userProvider->getUsernameForHashedPassword($uid, $timestamp, $hashedPassword); if (!$username) { throw new AuthenticationException(sprintf(' "%s" does not exist.', serialize($token->getCredentials()))); } $user = $userProvider->loadUserByUsername($username); return new PreAuthenticatedToken($user, $token->getCredentials(), $providerKey, $user->getRoles()); }