AuthMiddleware::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 0
nc 1
nop 2
dl 0
loc 4
ccs 0
cts 2
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Koded\Framework\Middleware;
4
5
use Koded\Framework\Auth\{AuthBackend, AuthProcessor};
6
use Psr\Http\Message\{ResponseInterface, ServerRequestInterface};
7
use Psr\Http\Server\{MiddlewareInterface, RequestHandlerInterface};
8
9
class AuthMiddleware implements MiddlewareInterface
10
{
11
    public function __construct(
12
        private readonly AuthProcessor $processor,
13
        private readonly AuthBackend $backend
14
    ) {}
15
16
    public function process(
17
        ServerRequestInterface $request,
18
        RequestHandlerInterface $handler): ResponseInterface
19
    {
20
        if ('OPTIONS' === $request->getMethod()) {
21
            return $handler->handle($request);
22
        }
23
        $request = $request->withAttribute('@user', $this->processor->authenticate(
24
            $this->backend, $request->getHeaderLine('Authorization')
25
        ));
26
        return $handler->handle($request);
27
    }
28
}
29