D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
psa
/
admin
/
plib
/
modules
/
wp-toolkit
/
vendor
/
lcobucci
/
jwt
/
src
/
Filename :
Configuration.php
back
Copy
<?php declare (strict_types=1); namespace WPToolkitDependenciesIsolationPrefix\Lcobucci\JWT; use Closure; use WPToolkitDependenciesIsolationPrefix\Lcobucci\JWT\Encoding\ChainedFormatter; use WPToolkitDependenciesIsolationPrefix\Lcobucci\JWT\Encoding\JoseEncoder; use WPToolkitDependenciesIsolationPrefix\Lcobucci\JWT\Signer\Key; use WPToolkitDependenciesIsolationPrefix\Lcobucci\JWT\Signer\Key\InMemory; use WPToolkitDependenciesIsolationPrefix\Lcobucci\JWT\Signer\None; use WPToolkitDependenciesIsolationPrefix\Lcobucci\JWT\Validation\Constraint; /** * Configuration container for the JWT Builder and Parser * * Serves like a small DI container to simplify the creation and usage * of the objects. */ final class Configuration { private Parser $parser; private Signer $signer; private Key $signingKey; private Key $verificationKey; private Validator $validator; /** @var Closure(ClaimsFormatter $claimFormatter): Builder */ private Closure $builderFactory; /** @var Constraint[] */ private array $validationConstraints = []; private function __construct(Signer $signer, Key $signingKey, Key $verificationKey, ?Encoder $encoder = null, ?Decoder $decoder = null) { $this->signer = $signer; $this->signingKey = $signingKey; $this->verificationKey = $verificationKey; $this->parser = new Token\Parser($decoder ?? new JoseEncoder()); $this->validator = new Validation\Validator(); $this->builderFactory = static function (ClaimsFormatter $claimFormatter) use($encoder) : Builder { return new Token\Builder($encoder ?? new JoseEncoder(), $claimFormatter); }; } public static function forAsymmetricSigner(Signer $signer, Key $signingKey, Key $verificationKey, ?Encoder $encoder = null, ?Decoder $decoder = null) : self { return new self($signer, $signingKey, $verificationKey, $encoder, $decoder); } public static function forSymmetricSigner(Signer $signer, Key $key, ?Encoder $encoder = null, ?Decoder $decoder = null) : self { return new self($signer, $key, $key, $encoder, $decoder); } public static function forUnsecuredSigner(?Encoder $encoder = null, ?Decoder $decoder = null) : self { $key = InMemory::empty(); return new self(new None(), $key, $key, $encoder, $decoder); } /** @param callable(ClaimsFormatter): Builder $builderFactory */ public function setBuilderFactory(callable $builderFactory) : void { $this->builderFactory = Closure::fromCallable($builderFactory); } public function builder(?ClaimsFormatter $claimFormatter = null) : Builder { return ($this->builderFactory)($claimFormatter ?? ChainedFormatter::default()); } public function parser() : Parser { return $this->parser; } public function setParser(Parser $parser) : void { $this->parser = $parser; } public function signer() : Signer { return $this->signer; } public function signingKey() : Key { return $this->signingKey; } public function verificationKey() : Key { return $this->verificationKey; } public function validator() : Validator { return $this->validator; } public function setValidator(Validator $validator) : void { $this->validator = $validator; } /** @return Constraint[] */ public function validationConstraints() : array { return $this->validationConstraints; } public function setValidationConstraints(Constraint ...$validationConstraints) : void { $this->validationConstraints = $validationConstraints; } }