Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 0 additions & 35 deletions .ci-tools/phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -4404,17 +4404,7 @@ parameters:
count: 1
path: ../src/Library/Checker/HeaderCheckerManager.php

-
rawMessage: 'Method Jose\Component\Checker\HeaderCheckerManager::checkDuplicatedHeaderParameters() has parameter $header1 with no value type specified in iterable type array.'
identifier: missingType.iterableValue
count: 1
path: ../src/Library/Checker/HeaderCheckerManager.php

-
rawMessage: 'Method Jose\Component\Checker\HeaderCheckerManager::checkDuplicatedHeaderParameters() has parameter $header2 with no value type specified in iterable type array.'
identifier: missingType.iterableValue
count: 1
path: ../src/Library/Checker/HeaderCheckerManager.php

-
rawMessage: 'Method Jose\Component\Checker\HeaderCheckerManager::checkHeaders() has parameter $header with no value type specified in iterable type array.'
Expand Down Expand Up @@ -4560,23 +4550,8 @@ parameters:
count: 1
path: ../src/Library/Console/RsaKeysetGeneratorCommand.php

-
rawMessage: 'Method Jose\Component\Core\AlgorithmManagerFactory::all() should return array<Jose\Component\Core\Algorithm> but returns array.'
identifier: return.type
count: 1
path: ../src/Library/Core/AlgorithmManagerFactory.php

-
rawMessage: 'Parameter #1 $algorithms of class Jose\Component\Core\AlgorithmManager constructor expects iterable<Jose\Component\Core\Algorithm>, list<mixed> given.'
identifier: argument.type
count: 1
path: ../src/Library/Core/AlgorithmManagerFactory.php

-
rawMessage: Property Jose\Component\Core\AlgorithmManagerFactory::$algorithms type has no value type specified in iterable type array.
identifier: missingType.iterableValue
count: 1
path: ../src/Library/Core/AlgorithmManagerFactory.php

-
rawMessage: 'Method Jose\Component\Core\JWK::__construct() has parameter $values with no value type specified in iterable type array.'
Expand Down Expand Up @@ -4914,17 +4889,7 @@ parameters:
count: 1
path: ../src/Library/Encryption/JWEDecrypter.php

-
rawMessage: 'Method Jose\Component\Encryption\JWEDecrypter::checkDuplicatedHeaderParameters() has parameter $header1 with no value type specified in iterable type array.'
identifier: missingType.iterableValue
count: 1
path: ../src/Library/Encryption/JWEDecrypter.php

-
rawMessage: 'Method Jose\Component\Encryption\JWEDecrypter::checkDuplicatedHeaderParameters() has parameter $header2 with no value type specified in iterable type array.'
identifier: missingType.iterableValue
count: 1
path: ../src/Library/Encryption/JWEDecrypter.php

-
rawMessage: 'Method Jose\Component\Encryption\JWEDecrypter::decryptCEK() has parameter $completeHeader with no value type specified in iterable type array.'
Expand Down
2 changes: 1 addition & 1 deletion src/Bundle/Serializer/JWEEncoder.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public function __construct(
?JWESerializerManager $serializerManager = null
) {
if ($serializerManager === null) {
$serializerManager = $serializerManagerFactory->create($serializerManagerFactory->names());
$serializerManager = $serializerManagerFactory->create($serializerManagerFactory->aliases());
}
$this->serializerManager = $serializerManager;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Bundle/Serializer/JWESerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public function __construct(
?JWESerializerManager $serializerManager = null
) {
if ($serializerManager === null) {
$serializerManager = $serializerManagerFactory->create($serializerManagerFactory->names());
$serializerManager = $serializerManagerFactory->create($serializerManagerFactory->aliases());
}
$this->serializerManager = $serializerManager;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Bundle/Serializer/JWSEncoder.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public function __construct(
?JWSSerializerManager $serializerManager = null
) {
if ($serializerManager === null) {
$serializerManager = $serializerManagerFactory->create($serializerManagerFactory->names());
$serializerManager = $serializerManagerFactory->create($serializerManagerFactory->aliases());
}
$this->serializerManager = $serializerManager;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Bundle/Serializer/JWSSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public function __construct(
?JWSSerializerManager $serializerManager = null
) {
if ($serializerManager === null) {
$serializerManager = $serializerManagerFactory->create($serializerManagerFactory->names());
$serializerManager = $serializerManagerFactory->create($serializerManagerFactory->aliases());
}
$this->serializerManager = $serializerManager;
}
Expand Down
42 changes: 5 additions & 37 deletions src/Bundle/Services/ClaimCheckerManagerFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,16 @@

namespace Jose\Bundle\JoseFramework\Services;

use InvalidArgumentException;
use Jose\Component\Checker\ClaimChecker;
use Jose\Component\Core\Util\AliasedRegistry;
use Psr\EventDispatcher\EventDispatcherInterface;
use function sprintf;

final class ClaimCheckerManagerFactory
{
/**
* @var ClaimChecker[]
* @use AliasedRegistry<ClaimChecker>
*/
private array $checkers = [];
use AliasedRegistry;

public function __construct(
private readonly EventDispatcherInterface $eventDispatcher
Expand All @@ -29,45 +28,14 @@ public function __construct(
*/
public function create(array $aliases): ClaimCheckerManager
{
$checkers = [];
foreach ($aliases as $alias) {
if (! isset($this->checkers[$alias])) {
throw new InvalidArgumentException(sprintf(
'The claim checker with the alias "%s" is not supported.',
$alias
));
}
$checkers[] = $this->checkers[$alias];
}

return new ClaimCheckerManager($checkers, $this->eventDispatcher);
return new ClaimCheckerManager($this->select($aliases, 'claim checker'), $this->eventDispatcher);
}

/**
* This method adds a claim checker to this factory.
*/
public function add(string $alias, ClaimChecker $checker): void
{
$this->checkers[$alias] = $checker;
}

/**
* Returns all claim checker aliases supported by this factory.
*
* @return string[]
*/
public function aliases(): array
{
return array_keys($this->checkers);
}

/**
* Returns all claim checkers supported by this factory.
*
* @return ClaimChecker[]
*/
public function all(): array
{
return $this->checkers;
$this->register($alias, $checker);
}
}
46 changes: 9 additions & 37 deletions src/Bundle/Services/HeaderCheckerManagerFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,17 @@

namespace Jose\Bundle\JoseFramework\Services;

use InvalidArgumentException;
use Jose\Component\Checker\HeaderChecker;
use Jose\Component\Checker\TokenTypeSupport;
use Jose\Component\Core\Util\AliasedRegistry;
use Psr\EventDispatcher\EventDispatcherInterface;
use function sprintf;

final class HeaderCheckerManagerFactory
{
/**
* @var HeaderChecker[]
* @use AliasedRegistry<HeaderChecker>
*/
private array $checkers = [];
use AliasedRegistry;

/**
* @var TokenTypeSupport[]
Expand All @@ -35,18 +34,11 @@ public function __construct(
*/
public function create(array $aliases): HeaderCheckerManager
{
$checkers = [];
foreach ($aliases as $alias) {
if (! isset($this->checkers[$alias])) {
throw new InvalidArgumentException(sprintf(
'The header checker with the alias "%s" is not supported.',
$alias
));
}
$checkers[] = $this->checkers[$alias];
}

return new HeaderCheckerManager($checkers, $this->tokenTypes, $this->eventDispatcher);
return new HeaderCheckerManager(
$this->select($aliases, 'header checker'),
$this->tokenTypes,
$this->eventDispatcher
);
}

/**
Expand All @@ -55,7 +47,7 @@ public function create(array $aliases): HeaderCheckerManager
*/
public function add(string $alias, HeaderChecker $checker): void
{
$this->checkers[$alias] = $checker;
$this->register($alias, $checker);
}

/**
Expand All @@ -65,24 +57,4 @@ public function addTokenTypeSupport(TokenTypeSupport $tokenType): void
{
$this->tokenTypes[] = $tokenType;
}

/**
* Returns all header parameter checker aliases supported by this factory.
*
* @return string[]
*/
public function aliases(): array
{
return array_keys($this->checkers);
}

/**
* Returns all header parameter checkers supported by this factory.
*
* @return HeaderChecker[]
*/
public function all(): array
{
return $this->checkers;
}
}
42 changes: 5 additions & 37 deletions src/Library/Checker/ClaimCheckerManagerFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

namespace Jose\Component\Checker;

use Jose\Component\Core\Exception\InvalidArgumentException;
use function sprintf;
use Jose\Component\Core\Util\AliasedRegistry;

/**
* This class is responsible for creating and managing claim checkers.
Expand All @@ -14,9 +13,9 @@
class ClaimCheckerManagerFactory
{
/**
* @var ClaimChecker[]
* @use AliasedRegistry<ClaimChecker>
*/
private array $checkers = [];
use AliasedRegistry;

/**
* This method creates a Claim Checker Manager and populate it with the claim checkers found based on the alias. If
Expand All @@ -26,45 +25,14 @@ class ClaimCheckerManagerFactory
*/
public function create(array $aliases): ClaimCheckerManager
{
$checkers = [];
foreach ($aliases as $alias) {
if (! isset($this->checkers[$alias])) {
throw new InvalidArgumentException(sprintf(
'The claim checker with the alias "%s" is not supported.',
$alias
));
}
$checkers[] = $this->checkers[$alias];
}

return new ClaimCheckerManager($checkers);
return new ClaimCheckerManager($this->select($aliases, 'claim checker'));
}

/**
* This method adds a claim checker to this factory.
*/
public function add(string $alias, ClaimChecker $checker): void
{
$this->checkers[$alias] = $checker;
}

/**
* Returns all claim checker aliases supported by this factory.
*
* @return string[]
*/
public function aliases(): array
{
return array_keys($this->checkers);
}

/**
* Returns all claim checkers supported by this factory.
*
* @return ClaimChecker[]
*/
public function all(): array
{
return $this->checkers;
$this->register($alias, $checker);
}
}
15 changes: 2 additions & 13 deletions src/Library/Checker/HeaderCheckerManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
namespace Jose\Component\Checker;

use Jose\Component\Core\Exception\InvalidArgumentException;
use Jose\Component\Core\Exception\InvalidHeaderParameterException;
use Jose\Component\Core\JWT;
use Jose\Component\Core\Util\HeaderParameterChecker;
use Jose\Component\Core\Util\InheritanceChecker;
use function array_key_exists;
use function count;
Expand Down Expand Up @@ -81,7 +81,7 @@ public function check(JWT $jwt, int $index, array $mandatoryHeaderParameters = [
$protected = [];
$unprotected = [];
$tokenType->retrieveTokenHeaders($jwt, $index, $protected, $unprotected);
$this->checkDuplicatedHeaderParameters($protected, $unprotected);
HeaderParameterChecker::checkDuplicates($protected, $unprotected);
$this->checkMandatoryHeaderParameters($mandatoryHeaderParameters, $protected, $unprotected);
$this->checkHeaders($protected, $unprotected);

Expand All @@ -92,17 +92,6 @@ public function check(JWT $jwt, int $index, array $mandatoryHeaderParameters = [
throw new InvalidArgumentException('Unsupported token type.');
}

private function checkDuplicatedHeaderParameters(array $header1, array $header2): void
{
$inter = array_intersect_key($header1, $header2);
if (count($inter) !== 0) {
throw new InvalidHeaderParameterException(sprintf(
'The header contains duplicated entries: %s.',
implode(', ', array_keys($inter))
));
}
}

/**
* @param string[] $mandatoryHeaderParameters
*/
Expand Down
Loading
Loading