AuthMiddleware   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
dl 0
loc 18
ccs 0
cts 9
cp 0
rs 10
c 1
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A process() 0 11 2
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