vendor/gesdinet/jwt-refresh-token-bundle/Security/Provider/RefreshTokenProvider.php line 22

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the GesdinetJWTRefreshTokenBundle package.
  4.  *
  5.  * (c) Gesdinet <http://www.gesdinet.com/>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Gesdinet\JWTRefreshTokenBundle\Security\Provider;
  11. use Symfony\Component\Security\Core\User\InMemoryUser;
  12. use Symfony\Component\Security\Core\User\UserProviderInterface;
  13. use Symfony\Component\Security\Core\User\User;
  14. use Symfony\Component\Security\Core\User\UserInterface;
  15. use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
  16. use Gesdinet\JWTRefreshTokenBundle\Model\RefreshTokenManagerInterface;
  17. use Gesdinet\JWTRefreshTokenBundle\Model\RefreshTokenInterface;
  18. trigger_deprecation('gesdinet/jwt-refresh-token-bundle''1.0''The "%s" class is deprecated, configure the user provider for the `refresh_jwt` authenticator instead.'RefreshTokenProvider::class);
  19. /**
  20.  * @deprecated configure the user provider for the `refresh_jwt` authenticator instead
  21.  */
  22. class RefreshTokenProvider implements UserProviderInterface
  23. {
  24.     /**
  25.      * @var RefreshTokenManagerInterface
  26.      */
  27.     protected $refreshTokenManager;
  28.     /**
  29.      * @var UserProviderInterface
  30.      */
  31.     protected $customUserProvider;
  32.     public function __construct(RefreshTokenManagerInterface $refreshTokenManager)
  33.     {
  34.         $this->refreshTokenManager $refreshTokenManager;
  35.     }
  36.     /**
  37.      * @return void
  38.      */
  39.     public function setCustomUserProvider(UserProviderInterface $customUserProvider)
  40.     {
  41.         $this->customUserProvider $customUserProvider;
  42.     }
  43.     /**
  44.      * @param string $token
  45.      *
  46.      * @return string|null
  47.      */
  48.     public function getUsernameForRefreshToken($token)
  49.     {
  50.         $refreshToken $this->refreshTokenManager->get($token);
  51.         if ($refreshToken instanceof RefreshTokenInterface) {
  52.             return $refreshToken->getUsername();
  53.         }
  54.         return null;
  55.     }
  56.     /**
  57.      * @param string $username
  58.      *
  59.      * @return UserInterface
  60.      *
  61.      * @deprecated use loadUserByIdentifier() instead
  62.      */
  63.     public function loadUserByUsername($username)
  64.     {
  65.         return $this->loadUserByIdentifier($username);
  66.     }
  67.     public function loadUserByIdentifier(string $identifier): UserInterface
  68.     {
  69.         if (null !== $this->customUserProvider) {
  70.             if (method_exists($this->customUserProvider'loadUserByIdentifier')) {
  71.                 return $this->customUserProvider->loadUserByIdentifier($identifier);
  72.             }
  73.             return $this->customUserProvider->loadUserByUsername($identifier);
  74.         }
  75.         if (class_exists(InMemoryUser::class)) {
  76.             return new InMemoryUser(
  77.                 $identifier,
  78.                 null,
  79.                 ['ROLE_USER']
  80.             );
  81.         }
  82.         return new User(
  83.             $identifier,
  84.             null,
  85.             ['ROLE_USER']
  86.         );
  87.     }
  88.     /**
  89.      * @return UserInterface
  90.      */
  91.     public function refreshUser(UserInterface $user)
  92.     {
  93.         if (null !== $this->customUserProvider) {
  94.             return $this->customUserProvider->refreshUser($user);
  95.         }
  96.         throw new UnsupportedUserException();
  97.     }
  98.     /**
  99.      * @param class-string<UserInterface> $class
  100.      *
  101.      * @return bool
  102.      */
  103.     public function supportsClass($class)
  104.     {
  105.         if (null !== $this->customUserProvider) {
  106.             return $this->customUserProvider->supportsClass($class);
  107.         }
  108.         if (class_exists(InMemoryUser::class) && InMemoryUser::class === $class) {
  109.             return true;
  110.         }
  111.         return class_exists(User::class) && User::class === $class;
  112.     }
  113. }