CsrfHeaderCheckMiddlewareFactory::createDefault()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 10
nc 1
nop 2
1
<?php
2
declare(strict_types=1);
3
4
namespace TheCodingMachine\Middlewares;
5
6
use TheCodingMachine\Middlewares\OriginFetchers\CompositeTargetOrigin;
7
use TheCodingMachine\Middlewares\OriginFetchers\HardCodedTargetOrigins;
8
use TheCodingMachine\Middlewares\OriginFetchers\HostHeader;
9
use TheCodingMachine\Middlewares\OriginFetchers\OriginOrRefererHeader;
10
use TheCodingMachine\Middlewares\SafeRequests\CompositeIsSafe;
11
use TheCodingMachine\Middlewares\SafeRequests\IsBypassedCheck;
12
use TheCodingMachine\Middlewares\SafeRequests\IsSafeHttpMethod;
13
use TheCodingMachine\Middlewares\SafeRequests\IsSafeHttpRoute;
14
15
final class CsrfHeaderCheckMiddlewareFactory
16
{
17
    public static function createDefault(array $applicationDomainNames = [], array $safeRoutes = []): CsrfHeaderCheckMiddleware
18
    {
19
        return new CsrfHeaderCheckMiddleware(
20
            new CompositeIsSafe(
21
                IsSafeHttpMethod::fromDefaultSafeMethods(),
22
                new IsSafeHttpRoute(...$safeRoutes),
23
                IsBypassedCheck::fromDefault()
24
            ),
25
            new CompositeTargetOrigin(
26
                new HostHeader(),
27
                new HardCodedTargetOrigins(...$applicationDomainNames)
28
            ),
29
            new OriginOrRefererHeader()
30
        );
31
    }
32
}
33