Completed
Push — master ( 41012c...89198e )
by Marco
02:54
created

Factory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Test Coverage

Coverage 100%
Metric Value
wmc 2
lcom 0
cbo 7
dl 0
loc 28
ccs 14
cts 14
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A createDefaultCSRFCheckerMiddleware() 0 11 1
A createDefaultTokenGenerator() 0 9 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PSR7Csrf;
6
7
use Lcobucci\JWT\Parser;
8
use Lcobucci\JWT\Signer\Hmac\Sha256;
9
use PSR7Csrf\HttpMethod\IsSafeHttpRequest;
10
use PSR7Csrf\RequestParameter\ExtractCSRFParameter;
11
use PSR7Csrf\Session\ExtractUniqueKeyFromSession;
12
use PSR7Session\Http\SessionMiddleware;
13
14
final class Factory
15
{
16
    const DEFAULT_SIGNATURE_KEY_NAME = 'csrf_signature_key';
17
    const DEFAULT_CSRF_DATA_KEY      = 'csrf_token';
18
    const DEFAULT_EXPIRATION_TIME    = 60 * 24;
19
20 1
    public static function createDefaultCSRFCheckerMiddleware() : CSRFCheckerMiddleware
21
    {
22 1
        return new CSRFCheckerMiddleware(
23 1
            IsSafeHttpRequest::fromDefaultSafeMethods(),
24 1
            new ExtractUniqueKeyFromSession(self::DEFAULT_SIGNATURE_KEY_NAME),
25 1
            new ExtractCSRFParameter(self::DEFAULT_CSRF_DATA_KEY),
26 1
            new Parser(),
27 1
            new Sha256(),
28 1
            SessionMiddleware::SESSION_ATTRIBUTE
29
        );
30
    }
31
32 1
    public static function createDefaultTokenGenerator() : TokenGeneratorInterface
33
    {
34 1
        return new TokenGenerator(
35 1
            new Sha256(),
36 1
            new ExtractUniqueKeyFromSession(self::DEFAULT_SIGNATURE_KEY_NAME),
37 1
            self::DEFAULT_EXPIRATION_TIME,
38 1
            SessionMiddleware::SESSION_ATTRIBUTE
39
        );
40
    }
41
}
42