![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/symfony/security-http/Authenticator/Passport/ |
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <[email protected]> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Security\Http\Authenticator\Passport; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\BadgeInterface; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\CredentialsInterface; /** * A Passport contains all security-related information that needs to be * validated during authentication. * * A passport badge can be used to add any additional information to the * passport. * * @author Wouter de Jong <[email protected]> */ class Passport implements UserPassportInterface { protected $user; private $badges = []; private $attributes = []; /** * @param CredentialsInterface $credentials the credentials to check for this authentication, use * SelfValidatingPassport if no credentials should be checked * @param BadgeInterface[] $badges */ public function __construct(UserBadge $userBadge, CredentialsInterface $credentials, array $badges = []) { $this->addBadge($userBadge); $this->addBadge($credentials); foreach ($badges as $badge) { $this->addBadge($badge); } } /** * {@inheritdoc} */ public function getUser(): UserInterface { if (null === $this->user) { if (!$this->hasBadge(UserBadge::class)) { throw new \LogicException('Cannot get the Security user, no username or UserBadge configured for this passport.'); } $this->user = $this->getBadge(UserBadge::class)->getUser(); } return $this->user; } /** * Adds a new security badge. * * A passport can hold only one instance of the same security badge. * This method replaces the current badge if it is already set on this * passport. * * @return $this */ public function addBadge(BadgeInterface $badge): PassportInterface { $this->badges[\get_class($badge)] = $badge; return $this; } public function hasBadge(string $badgeFqcn): bool { return isset($this->badges[$badgeFqcn]); } public function getBadge(string $badgeFqcn): ?BadgeInterface { return $this->badges[$badgeFqcn] ?? null; } /** * @return array<class-string<BadgeInterface>, BadgeInterface> */ public function getBadges(): array { return $this->badges; } /** * @param mixed $value */ public function setAttribute(string $name, $value): void { $this->attributes[$name] = $value; } /** * @param mixed $default * * @return mixed */ public function getAttribute(string $name, $default = null) { return $this->attributes[$name] ?? $default; } public function getAttributes(): array { return $this->attributes; } }