Files
conservatorio-tomadini/libraries/vendor/web-token/jwt-library/NestedToken/NestedTokenLoaderFactory.php
2024-12-17 17:34:10 +01:00

53 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
namespace Jose\Component\NestedToken;
use Jose\Component\Encryption\JWELoaderFactory;
use Jose\Component\Signature\JWSLoaderFactory;
class NestedTokenLoaderFactory
{
public function __construct(
private readonly JWELoaderFactory $jweLoaderFactory,
private readonly JWSLoaderFactory $jwsLoaderFactory
) {
}
/**
* This method creates a Nested Token Loader with the given encryption/signature algorithms, serializers,
* compression methods and header checkers.
*
* @param array<string> $jweSerializers
* @param array<string> $keyEncryptionAlgorithms
* @param array<string> $contentEncryptionAlgorithms
* @param null|array<string> $compressionMethods
* @param array<string> $jweHeaderCheckers
* @param array<string> $jwsSerializers
* @param array<string> $signatureAlgorithms
* @param array<string> $jwsHeaderCheckers
*/
public function create(
array $jweSerializers,
array $keyEncryptionAlgorithms,
null|array $contentEncryptionAlgorithms,
null|array $compressionMethods,
array $jweHeaderCheckers,
array $jwsSerializers,
array $signatureAlgorithms,
array $jwsHeaderCheckers
): NestedTokenLoader {
$jweLoader = $this->jweLoaderFactory->create(
$jweSerializers,
$keyEncryptionAlgorithms,
$contentEncryptionAlgorithms,
$compressionMethods,
$jweHeaderCheckers
);
$jwsLoader = $this->jwsLoaderFactory->create($jwsSerializers, $signatureAlgorithms, $jwsHeaderCheckers);
return new NestedTokenLoader($jweLoader, $jwsLoader);
}
}