Passed
Push — master ( 1b1def...6e81bd )
by Dominik
04:37
created

CsrfProvider.php$0 ➔ errorResponse()   A

Complexity

Conditions 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 8
c 0
b 0
f 0
ccs 2
cts 2
cp 1
rs 9.4285
cc 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Chubbyphp\Csrf;
6
7
use Pimple\Container;
8
use Pimple\ServiceProviderInterface;
9
use Psr\Http\Message\ServerRequestInterface as Request;
10
use Psr\Http\Message\ResponseInterface as Response;
11
12
final class CsrfProvider implements ServiceProviderInterface
13
{
14
    /**
15
     * @param Container $container
16
     */
17 1
    public function register(Container $container)
18
    {
19 1
        $container['csrf.tokenGenerator.entropy'] = 256;
20
21
        $container['csrf.tokenGenerator'] = function () use ($container) {
22 1
            return new CsrfTokenGenerator($container['csrf.tokenGenerator.entropy']);
23
        };
24
25
        $container['csrf.errorResponseHandler'] = new class() implements CsrfErrorHandlerInterface {
26 1
            public function errorResponse(
27
                Request $request,
28
                Response $response,
29
                int $code,
30
                string $reasonPhrase
31
            ): Response {
32 1
                return $response->withStatus($code, $reasonPhrase);
33
            }
34
        };
35
36 1
        $container['csrf.middleware'] = function () use ($container) {
37 1
            return new CsrfErrorResponseMiddleware(
38 1
                $container['csrf.tokenGenerator'],
39 1
                $container['session'],
40 1
                $container['csrf.errorResponseHandler'],
41 1
                $container['logger'] ?? null
42
            );
43
        };
44 1
    }
45
}
46