Completed
Push — master ( bf69c3...92abdd )
by Milos
03:34
created

SloRequestActionBuilder::doInitialize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 56
Code Lines 41

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 56
ccs 0
cts 54
cp 0
rs 9.7251
cc 1
eloc 41
nc 1
nop 0
crap 2

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/*
4
 * This file is part of the LightSAML-Logout package.
5
 *
6
 * (c) Milos Tomic <[email protected]>
7
 *
8
 * This source file is subject to the GPL-3 license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace LightSaml\Logout\Builder\Action\Profile\SingleLogout;
13
14
use LightSaml\Action\Profile\Outbound\Message\CreateMessageIssuerAction;
15
use LightSaml\Action\Profile\Outbound\Message\DestinationAction;
16
use LightSaml\Action\Profile\Outbound\Message\ResolveEndpointSloAction;
17
use LightSaml\Logout\Action\Profile\Outbound\LogoutRequest\CreateLogoutRequestAction;
18
use LightSaml\Logout\Action\Profile\Outbound\LogoutRequest\LogoutResolveAction;
19
use LightSaml\Logout\Action\Profile\Outbound\LogoutRequest\ResolveLogoutPartyAction;
20
use LightSaml\Logout\Action\Profile\Outbound\LogoutRequest\SetNameIdAction;
21
use LightSaml\Logout\Action\Profile\Outbound\LogoutRequest\SetNotOnOrAfterAction;
22
use LightSaml\Action\Profile\Outbound\Message\MessageIdAction;
23
use LightSaml\Action\Profile\Outbound\Message\MessageIssueInstantAction;
24
use LightSaml\Action\Profile\Outbound\Message\MessageVersionAction;
25
use LightSaml\Action\Profile\Outbound\Message\SendMessageAction;
26
use LightSaml\Action\Profile\Outbound\Message\SignMessageAction;
27
use LightSaml\Builder\Action\CompositeActionBuilder;
28
use LightSaml\Builder\Action\Profile\AbstractProfileActionBuilder;
29
use LightSaml\SamlConstants;
30
31
class SloRequestActionBuilder extends AbstractProfileActionBuilder
32
{
33
    /**
34
     * @return void
35
     */
36
    protected function doInitialize()
37
    {
38
        $proceedActionBuilder = new CompositeActionBuilder();
39
40
        $proceedActionBuilder->add(new CreateLogoutRequestAction(
41
            $this->buildContainer->getSystemContainer()->getLogger()
42
        ), 100);
43
        $proceedActionBuilder->add(new MessageIdAction(
44
            $this->buildContainer->getSystemContainer()->getLogger()
45
        ));
46
        $proceedActionBuilder->add(new MessageVersionAction(
47
            $this->buildContainer->getSystemContainer()->getLogger(),
48
            SamlConstants::VERSION_20
49
        ));
50
        $proceedActionBuilder->add(new MessageIssueInstantAction(
51
            $this->buildContainer->getSystemContainer()->getLogger(),
52
            $this->buildContainer->getSystemContainer()->getTimeProvider()
53
        ));
54
        $proceedActionBuilder->add(new ResolveLogoutPartyAction(
55
            $this->buildContainer->getPartyContainer()->getIdpEntityDescriptorStore(),
56
            $this->buildContainer->getPartyContainer()->getSpEntityDescriptorStore(),
57
            $this->buildContainer->getPartyContainer()->getTrustOptionsStore()
58
        ));
59
        $proceedActionBuilder->add(new ResolveEndpointSloAction(
60
            $this->buildContainer->getSystemContainer()->getLogger(),
61
            $this->buildContainer->getServiceContainer()->getEndpointResolver()
62
        ));
63
        $proceedActionBuilder->add(new DestinationAction(
64
            $this->buildContainer->getSystemContainer()->getLogger()
65
        ));
66
        $proceedActionBuilder->add(new CreateMessageIssuerAction(
67
            $this->buildContainer->getSystemContainer()->getLogger()
68
        ));
69
        $proceedActionBuilder->add(new SetNameIdAction(
70
            $this->buildContainer->getSystemContainer()->getLogger()
71
        ));
72
        $proceedActionBuilder->add(new SetNotOnOrAfterAction(
73
            $this->buildContainer->getSystemContainer()->getLogger(),
74
            $this->buildContainer->getSystemContainer()->getTimeProvider(),
75
            120
76
        ));
77
        $proceedActionBuilder->add(new SignMessageAction(
78
            $this->buildContainer->getSystemContainer()->getLogger(),
79
            $this->buildContainer->getServiceContainer()->getSignatureResolver()
80
        ));
81
        $proceedActionBuilder->add(new SendMessageAction(
82
            $this->buildContainer->getSystemContainer()->getLogger(),
83
            $this->buildContainer->getServiceContainer()->getBindingFactory()
84
        ));
85
86
        $this->add(new LogoutResolveAction(
87
            $this->buildContainer->getSystemContainer()->getLogger(),
88
            $this->buildContainer->getServiceContainer()->getLogoutSessionResolver(),
89
            $proceedActionBuilder->build()
90
        ), 100);
91
    }
92
}
93