vendor/symfony/security-http/Authentication/AuthenticationUtils.php line 65

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\Http\Authentication;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\RequestStack;
  13. use Symfony\Component\Security\Core\Exception\AuthenticationException;
  14. use Symfony\Component\Security\Core\Security;
  15. /**
  16.  * Extracts Security Errors from Request.
  17.  *
  18.  * @author Boris Vujicic <boris.vujicic@gmail.com>
  19.  */
  20. class AuthenticationUtils
  21. {
  22.     private $requestStack;
  23.     public function __construct(RequestStack $requestStack)
  24.     {
  25.         $this->requestStack $requestStack;
  26.     }
  27.     /**
  28.      * @return AuthenticationException|null
  29.      */
  30.     public function getLastAuthenticationError(bool $clearSession true)
  31.     {
  32.         $request $this->getRequest();
  33.         $authenticationException null;
  34.         if ($request->attributes->has(Security::AUTHENTICATION_ERROR)) {
  35.             $authenticationException $request->attributes->get(Security::AUTHENTICATION_ERROR);
  36.         } elseif ($request->hasSession() && ($session $request->getSession())->has(Security::AUTHENTICATION_ERROR)) {
  37.             $authenticationException $session->get(Security::AUTHENTICATION_ERROR);
  38.             if ($clearSession) {
  39.                 $session->remove(Security::AUTHENTICATION_ERROR);
  40.             }
  41.         }
  42.         return $authenticationException;
  43.     }
  44.     /**
  45.      * @return string
  46.      */
  47.     public function getLastUsername()
  48.     {
  49.         $request $this->getRequest();
  50.         if ($request->attributes->has(Security::LAST_USERNAME)) {
  51.             return $request->attributes->get(Security::LAST_USERNAME) ?? '';
  52.         }
  53.         return $request->hasSession() ? ($request->getSession()->get(Security::LAST_USERNAME) ?? '') : '';
  54.     }
  55.     /**
  56.      * @throws \LogicException
  57.      */
  58.     private function getRequest(): Request
  59.     {
  60.         $request $this->requestStack->getCurrentRequest();
  61.         if (null === $request) {
  62.             throw new \LogicException('Request should exist so it can be processed for error.');
  63.         }
  64.         return $request;
  65.     }
  66. }