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

SloRequestActionBuilder   C

Complexity

Total Complexity 1

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 19

Test Coverage

Coverage 0%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 1
c 2
b 0
f 0
lcom 1
cbo 19
dl 0
loc 62
ccs 0
cts 54
cp 0
rs 6.875

1 Method

Rating   Name   Duplication   Size   Complexity  
A doInitialize() 0 56 1
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