Spaces:
No application file
No application file
namespace Mautic\UserBundle\Security\Authentication\Token; | |
use Symfony\Component\HttpFoundation\Response; | |
use Symfony\Component\Security\Core\Authentication\Token\AbstractToken; | |
use Symfony\Component\Security\Core\User\UserInterface; | |
use Symfony\Component\Security\Guard\Token\GuardTokenInterface; | |
class PluginToken extends AbstractToken implements GuardTokenInterface | |
{ | |
private ?string $providerKey; | |
/** | |
* @param UserInterface|string|null $user | |
* @param array<string> $roles | |
*/ | |
public function __construct( | |
?string $providerKey, | |
private ?string $authenticatingService = null, | |
$user = null, | |
private string $credentials = '', | |
array $roles = [], | |
private ?Response $response = null | |
) { | |
parent::__construct($roles); | |
if ('' === $providerKey) { | |
throw new \InvalidArgumentException('$providerKey must not be empty.'); | |
} | |
if (null !== $user) { | |
$this->setUser($user); | |
} | |
$this->providerKey = $providerKey; | |
$this->setAuthenticated(count($roles) > 0); | |
} | |
public function getCredentials(): string | |
{ | |
return $this->credentials; | |
} | |
public function getProviderKey(): ?string | |
{ | |
return $this->providerKey; | |
} | |
public function getAuthenticatingService(): ?string | |
{ | |
return $this->authenticatingService; | |
} | |
public function getResponse(): ?Response | |
{ | |
return $this->response; | |
} | |
/** | |
* @return array<int, mixed> | |
*/ | |
public function __serialize(): array | |
{ | |
return array_merge([$this->authenticatingService, $this->credentials, $this->providerKey, parent::__serialize()]); | |
} | |
/** | |
* @param array<int, mixed> $data | |
*/ | |
public function __unserialize(array $data): void | |
{ | |
[$this->authenticatingService, $this->credentials, $this->providerKey, $parentArray] = $data; | |
parent::__unserialize($parentArray); | |
} | |
} | |