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

Factory::createDefaultCSRFCheckerMiddleware()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1
Metric Value
dl 0
loc 11
ccs 8
cts 8
cp 1
rs 9.4285
cc 1
eloc 8
nc 1
nop 0
crap 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