Completed
Push — feature/EVO-8346_remove_reques... ( 0564d9 )
by Bastian
08:40
created

StripHeaderRequestListener   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 3
dl 0
loc 41
ccs 0
cts 17
cp 0
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A onKernelRequest() 0 8 2
A removeHeaderField() 0 6 2
1
<?php
2
/**
3
 * ResponseListener for removing named header fields.
4
 */
5
6
namespace Graviton\RestBundle\Listener;
7
8
use Graviton\RestBundle\Event\RestEvent;
9
use Symfony\Component\HttpFoundation\Request;
10
11
/**
12
 * Class StripHeaderRequestListener
13
 *
14
 * @package Graviton\RestBundle\Listener
15
 *
16
 * @author   List of contributors <https://github.com/libgraviton/graviton/graphs/contributors>
17
 * @license  http://opensource.org/licenses/gpl-license.php GNU Public License
18
 * @link     http://swisscom.ch
19
 */
20
class StripHeaderRequestListener
21
{
22
    /** @var array  */
23
    private $fieldnames = [];
24
25
    /**
26
     * StripHeaderRequestListener constructor.
27
     *
28
     * @param array $fieldnames  Name of header fields to be stripped off the request.
29
     */
30
    public function __construct(array $fieldnames = [])
31
    {
32
        $this->fieldnames = $fieldnames;
33
    }
34
35
    /**
36
     * Validate the json input to prevent errors in the following components
37
     *
38
     * @param RestEvent $event Event
39
     *
40
     * @return void
41
     */
42
    public function onKernelRequest(RestEvent $event)
43
    {
44
        $request = $event->getRequest();
45
46
        foreach ($this->fieldnames as $fieldname) {
47
            $this->removeHeaderField($request, $fieldname);
48
        }
49
    }
50
51
    /**
52
     * @param $request
53
     */
54
    private function removeHeaderField(Request $request, $fieldname)
55
    {
56
        if ($request->headers->has($fieldname)) {
57
            $request->headers->remove($fieldname);
58
        }
59
    }
60
}
61