securityTokenStorage = $securityTokenStorage; } /** * {@inheritdoc} */ public function loadUserByUsername($username) { return new CustomOAuthUser($username); } /** * {@inheritdoc} */ public function refreshUser(UserInterface $user) { if (!$this->supportsClass(get_class($user))) { throw new UnsupportedUserException(sprintf('Unsupported user class "%s"', get_class($user))); } return $user; } /** * {@inheritdoc} */ public function loadUserByOAuthUserResponse(UserResponseInterface $response) { $user = $this->loadUserByUsername($response->getNickname()); $user->setRoles($response->getRoles()); $user->setTenancies($response->getTenancies()); $user->setTenancyCurrent($response->getTenancyCurrent()); $user->setHasIntercom($response->getHasIntercom()); $token = new UsernamePasswordToken($user, null, "secured_area", $user->getRoles()); $this->securityTokenStorage->setToken($token); return $user; } /** * {@inheritdoc} */ public function supportsClass($class) { return $class === 'Base\\OAuthClientBundle\\Security\\Core\\User\\CustomOAuthUser'; } }