Skip to content

Commit 8b57037

Browse files
committed
Support for Symfony 6
based on lightSAML#97
1 parent 083bf6d commit 8b57037

File tree

3 files changed

+44
-41
lines changed

3 files changed

+44
-41
lines changed

composer.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@
1919
}
2020
},
2121
"require": {
22-
"php": ">=5.6",
23-
"symfony/framework-bundle": "~2.7|~3.0|~4.0|~5.0",
24-
"symfony/security-bundle": "~2.7|~3.0|~4.0|~5.0",
25-
"lightsaml/symfony-bridge": "dev-symfony5"
22+
"php": ">=7.2.5",
23+
"symfony/framework-bundle": "~5.0|~6.0",
24+
"symfony/security-bundle": "~5.0|~6.0",
25+
"lightsaml/symfony-bridge": "^2.0"
2626
},
2727
"require-dev": {
28-
"phpunit/phpunit": "^5.7",
29-
"sebastian/comparator": "^1.2.4|~2.0|~3.0",
30-
"symfony/symfony": "~2.7|~3.0|~4.0",
31-
"symfony/monolog-bundle": "~2.7|~3.0|~4.0"
28+
"phpunit/phpunit": "~8.4|~9.5",
29+
"sebastian/comparator": "^4.0",
30+
"symfony/symfony": "~5.0|~6.0",
31+
"symfony/monolog-bundle": "~3.0"
3232
},
3333
"config": {
3434
"bin-dir": "bin"

src/LightSaml/SpBundle/Controller/DefaultController.php

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,43 @@
1111

1212
namespace LightSaml\SpBundle\Controller;
1313

14-
use LightSaml\Builder\Profile\Metadata\MetadataProfileBuilder;
14+
use LightSaml\SymfonyBridgeBundle\Bridge\Container\BuildContainer;
1515
use LightSaml\Builder\Profile\WebBrowserSso\Sp\SsoSpSendAuthnRequestProfileBuilderFactory;
16-
use LightSaml\SymfonyBridgeBundle\Bridge\Container\PartyContainer;
17-
use LightSaml\SymfonyBridgeBundle\Bridge\Container\StoreContainer;
16+
use LightSaml\Builder\Profile\Metadata\MetadataProfileBuilder;
1817
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
1918
use Symfony\Component\HttpFoundation\Request;
2019

2120
class DefaultController extends AbstractController
2221
{
23-
private MetadataProfileBuilder $metadataProfileBuilder;
24-
private SsoSpSendAuthnRequestProfileBuilderFactory $profileLoginFactory;
25-
private StoreContainer $storeContainer;
26-
private PartyContainer $partyContainer;
27-
private string $discoveryRoute;
28-
29-
public function __construct(
30-
MetadataProfileBuilder $metadataProfileBuilder,
31-
SsoSpSendAuthnRequestProfileBuilderFactory $profileLoginFactory,
32-
StoreContainer $storeContainer,
33-
PartyContainer $partyContainer,
34-
string $discoveryRoute
35-
) {
22+
/**
23+
* @var BuildContainer $buildContainer
24+
*/
25+
protected BuildContainer $buildContainer;
26+
/**
27+
* @var SsoSpSendAuthnRequestProfileBuilderFactory $ssoSpSendAuthnRequestProfileBuilderFactory
28+
*/
29+
protected SsoSpSendAuthnRequestProfileBuilderFactory $ssoSpSendAuthnRequestProfileBuilderFactory;
30+
/**
31+
* @var MetadataProfileBuilder $metadataProfileBuilder
32+
*/
33+
protected MetadataProfileBuilder $metadataProfileBuilder;
34+
/**
35+
* @var string $samlSpDiscoveryRoute
36+
*/
37+
protected string $samlSpDiscoveryRoute;
38+
39+
public function __construct(BuildContainer $buildContainer, SsoSpSendAuthnRequestProfileBuilderFactory $ssoSpSendAuthnRequestProfileBuilderFactory, MetadataProfileBuilder $metadataProfileBuilder, string $samlSpDiscoveryRoute)
40+
{
41+
$this->buildContainer = $buildContainer;
42+
$this->ssoSpSendAuthnRequestProfileBuilderFactory = $ssoSpSendAuthnRequestProfileBuilderFactory;
3643
$this->metadataProfileBuilder = $metadataProfileBuilder;
37-
$this->profileLoginFactory = $profileLoginFactory;
38-
$this->storeContainer = $storeContainer;
39-
$this->discoveryRoute = $discoveryRoute;
40-
$this->partyContainer = $partyContainer;
44+
$this->samlSpDiscoveryRoute = $samlSpDiscoveryRoute;
4145
}
42-
4346
public function metadataAction()
4447
{
45-
$context = $this->metadataProfileBuilder->buildContext();
46-
$action = $this->metadataProfileBuilder->buildAction();
48+
$profile = $this->metadataProfileBuilder;
49+
$context = $profile->buildContext();
50+
$action = $profile->buildAction();
4751

4852
$action->execute($context);
4953

@@ -52,7 +56,7 @@ public function metadataAction()
5256

5357
public function discoveryAction()
5458
{
55-
$parties = $this->partyContainer->getIdpEntityDescriptorStore()->all();
59+
$parties = $this->buildContainer->getPartyContainer()->getIdpEntityDescriptorStore()->all();
5660

5761
if (1 == count($parties)) {
5862
return $this->redirect($this->generateUrl('lightsaml_sp.login', ['idp' => $parties[0]->getEntityID()]));
@@ -67,10 +71,10 @@ public function loginAction(Request $request)
6771
{
6872
$idpEntityId = $request->get('idp');
6973
if (null === $idpEntityId) {
70-
return $this->redirect($this->generateUrl($this->discoveryRoute));
74+
return $this->redirect($this->generateUrl($this->samlSpDiscoveryRoute));
7175
}
7276

73-
$profile = $this->profileLoginFactory->get($idpEntityId);
77+
$profile = $this->ssoSpSendAuthnRequestProfileBuilderFactory->get($idpEntityId);
7478
$context = $profile->buildContext();
7579
$action = $profile->buildAction();
7680

@@ -81,7 +85,7 @@ public function loginAction(Request $request)
8185

8286
public function sessionsAction()
8387
{
84-
$ssoState = $this->storeContainer->getSsoStateStore()->get();
88+
$ssoState = $this->buildContainer->getStoreContainer()->getSsoStateStore()->get();
8589

8690
return $this->render('@LightSamlSp/sessions.html.twig', [
8791
'sessions' => $ssoState->getSsoSessions(),

src/LightSaml/SpBundle/Resources/config/services.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@ parameters:
55
services:
66
LightSaml\SpBundle\Controller\DefaultController:
77
public: true
8-
tags: [ 'controller.service_arguments' ]
8+
tags: ['controller.service_arguments']
99
calls:
1010
- [ setContainer, [ "@service_container" ] ]
1111
arguments:
12-
$metadataProfileBuilder: '@ligthsaml.profile.metadata'
13-
$profileLoginFactory: '@ligthsaml.profile.login_factory'
14-
$storeContainer: "@lightsaml.container.store"
15-
$partyContainer: "@lightsaml.container.party"
16-
$discoveryRoute: "%lightsaml_sp.route.discovery%"
12+
- "@lightsaml.container.build"
13+
- "@ligthsaml.profile.login_factory"
14+
- "@ligthsaml.profile.metadata"
15+
- "%lightsaml_sp.route.discovery%"
1716

1817
lightsaml_sp.username_mapper.simple:
1918
class: LightSaml\SpBundle\Security\User\SimpleUsernameMapper

0 commit comments

Comments
 (0)