12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
- namespace Base\OAuthBundle\Security\Core\User;
- use HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface;
- use HWI\Bundle\OAuthBundle\Security\Core\User\OAuthUserProvider;
- use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
- class CustomOAuthUserProvider extends OAuthUserProvider
- {
- protected $securityTokenStorage;
-
- public function __construct($securityTokenStorage)
- {
- $this->securityTokenStorage = $securityTokenStorage;
- }
- /**
- * {@inheritdoc}
- */
- public function loadUserByUsername($username)
- {
- return new CustomOAuthUser($username);
- }
-
- /**
- * {@inheritdoc}
- */
- public function loadUserByOAuthUserResponse(UserResponseInterface $response)
- {
- $user = $this->loadUserByUsername($response->getNickname());
- $user->setRoles($response->getRoles());
- $token = new UsernamePasswordToken($user, null, "secured_area", $user->getRoles());
- $this->securityTokenStorage->setToken($token);
-
- return $user;
- }
- /**
- * {@inheritdoc}
- */
- public function supportsClass($class)
- {
- return $class === 'Base\\OAuthBundle\\Security\\Core\\User\\CustomOAuthUser';
- }
- }
|