-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathHeaderCheckerManager.php
39 lines (33 loc) · 1.24 KB
/
HeaderCheckerManager.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
declare(strict_types=1);
namespace Jose\Bundle\JoseFramework\Services;
use Jose\Bundle\JoseFramework\Event\HeaderCheckedFailureEvent;
use Jose\Bundle\JoseFramework\Event\HeaderCheckedSuccessEvent;
use Jose\Component\Checker\HeaderCheckerManager as BaseHeaderCheckerManager;
use Jose\Component\Core\JWT;
use Psr\EventDispatcher\EventDispatcherInterface;
use Throwable;
final class HeaderCheckerManager extends BaseHeaderCheckerManager
{
public function __construct(
array $checkers,
array $tokenTypes,
private readonly EventDispatcherInterface $eventDispatcher
) {
parent::__construct($checkers, $tokenTypes);
}
public function check(JWT $jwt, int $index, array $mandatoryHeaderParameters = []): void
{
try {
BaseHeaderCheckerManager::check($jwt, $index, $mandatoryHeaderParameters);
$this->eventDispatcher->dispatch(
new HeaderCheckedSuccessEvent($jwt, $index, $mandatoryHeaderParameters)
);
} catch (Throwable $throwable) {
$this->eventDispatcher->dispatch(
new HeaderCheckedFailureEvent($jwt, $index, $mandatoryHeaderParameters, $throwable)
);
throw $throwable;
}
}
}