vendor/symfony/security-core/Exception/AuthenticationException.php line 22

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.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 Symfony\Component\Security\Core\Exception;
  11. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  12. /**
  13.  * AuthenticationException is the base class for all authentication exceptions.
  14.  *
  15.  * @author Fabien Potencier <fabien@symfony.com>
  16.  * @author Alexander <iam.asm89@gmail.com>
  17.  */
  18. class AuthenticationException extends RuntimeException
  19. {
  20.     /** @internal */
  21.     protected $serialized;
  22.     private $token;
  23.     public function __construct(string $message ''int $code 0, ?\Throwable $previous null)
  24.     {
  25.         unset($this->serialized);
  26.         parent::__construct($message$code$previous);
  27.     }
  28.     /**
  29.      * @return TokenInterface|null
  30.      */
  31.     public function getToken()
  32.     {
  33.         return $this->token;
  34.     }
  35.     public function setToken(TokenInterface $token)
  36.     {
  37.         $this->token $token;
  38.     }
  39.     /**
  40.      * Returns all the necessary state of the object for serialization purposes.
  41.      *
  42.      * There is no need to serialize any entry, they should be returned as-is.
  43.      * If you extend this method, keep in mind you MUST guarantee parent data is present in the state.
  44.      * Here is an example of how to extend this method:
  45.      * <code>
  46.      *     public function __serialize(): array
  47.      *     {
  48.      *         return [$this->childAttribute, parent::__serialize()];
  49.      *     }
  50.      * </code>
  51.      *
  52.      * @see __unserialize()
  53.      */
  54.     public function __serialize(): array
  55.     {
  56.         return [$this->token$this->code$this->message$this->file$this->line];
  57.     }
  58.     /**
  59.      * Restores the object state from an array given by __serialize().
  60.      *
  61.      * There is no need to unserialize any entry in $data, they are already ready-to-use.
  62.      * If you extend this method, keep in mind you MUST pass the parent data to its respective class.
  63.      * Here is an example of how to extend this method:
  64.      * <code>
  65.      *     public function __unserialize(array $data): void
  66.      *     {
  67.      *         [$this->childAttribute, $parentData] = $data;
  68.      *         parent::__unserialize($parentData);
  69.      *     }
  70.      * </code>
  71.      *
  72.      * @see __serialize()
  73.      */
  74.     public function __unserialize(array $data): void
  75.     {
  76.         [$this->token$this->code$this->message$this->file$this->line] = $data;
  77.     }
  78.     /**
  79.      * Message key to be used by the translation component.
  80.      *
  81.      * @return string
  82.      */
  83.     public function getMessageKey()
  84.     {
  85.         return 'An authentication exception occurred.';
  86.     }
  87.     /**
  88.      * Message data to be used by the translation component.
  89.      *
  90.      * @return array
  91.      */
  92.     public function getMessageData()
  93.     {
  94.         return [];
  95.     }
  96.     /**
  97.      * @internal
  98.      */
  99.     public function __sleep(): array
  100.     {
  101.         $this->serialized $this->__serialize();
  102.         return ['serialized'];
  103.     }
  104.     /**
  105.      * @internal
  106.      */
  107.     public function __wakeup(): void
  108.     {
  109.         $this->__unserialize($this->serialized);
  110.         unset($this->serialized);
  111.     }
  112. }