Passed
Push — master ( c44d00...13b3c2 )
by David
53s
created

CsrfHeaderCheckMiddlewareFactory   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 9

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 9
dl 0
loc 18
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A createDefault() 0 15 1
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