From 921577ba4468c50c5d5112bf6de4aacfd4ccfc58 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 22 Aug 2024 09:49:34 +0200 Subject: [PATCH 1/6] Fix duplicate date-header --- src/Controller/DiscoPower.php | 8 ++++---- src/PowerIdPDisco.php | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Controller/DiscoPower.php b/src/Controller/DiscoPower.php index 599b459..0e0a61a 100644 --- a/src/Controller/DiscoPower.php +++ b/src/Controller/DiscoPower.php @@ -8,15 +8,15 @@ use SimpleSAML\Error; use SimpleSAML\Module\discopower\PowerIdPDisco; use SimpleSAML\Session; -use Symfony\Component\HttpFoundation\{JsonResponse, Request, Response, StreamedResponse}; +use Symfony\Component\HttpFoundation\{JsonResponse, Request, Response}; class DiscoPower { /** * @param \Symfony\Component\HttpFoundation\Request $request The current request. - * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @return \SimpleSAML\Component\HttpFoundation\Response */ - public function main(Request $request): StreamedResponse + public function main(Request $request): Response { try { $discoHandler = new PowerIdPDisco( @@ -29,7 +29,7 @@ public function main(Request $request): StreamedResponse } try { - return new StreamedResponse([$discoHandler, 'handleRequest']); + return $discoHandler->handleRequest(); } catch (Exception $exception) { // An error here should be caused by metadata throw new Error\Error('METADATA', $exception); diff --git a/src/PowerIdPDisco.php b/src/PowerIdPDisco.php index 82cd127..313a656 100644 --- a/src/PowerIdPDisco.php +++ b/src/PowerIdPDisco.php @@ -289,8 +289,10 @@ protected function filterList(array $list): array * Handles a request to this discovery service. * * The IdP disco parameters should be set before calling this function. + * + * @return \Symfony\Component\HttpFoundation\Response */ - public function handleRequest(): void + public function handleRequest(): Template { $this->start(); @@ -344,7 +346,7 @@ public function handleRequest(): void $t->data['tabNames'][$tab] = $translator::noop($translatableTag); } } - $t->send(); + return $t; } From beec4a1b51ba1565694cd27eeb2063203008dc2b Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 22 Aug 2024 10:03:20 +0200 Subject: [PATCH 2/6] Fix return-type --- src/Controller/DiscoPower.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controller/DiscoPower.php b/src/Controller/DiscoPower.php index 0e0a61a..03c3bef 100644 --- a/src/Controller/DiscoPower.php +++ b/src/Controller/DiscoPower.php @@ -14,7 +14,7 @@ class DiscoPower { /** * @param \Symfony\Component\HttpFoundation\Request $request The current request. - * @return \SimpleSAML\Component\HttpFoundation\Response + * @return \Symfony\Component\HttpFoundation\Response */ public function main(Request $request): Response { From e2648f643d30afab52163181a8d1fa8da16ed11f Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 22 Aug 2024 10:04:47 +0200 Subject: [PATCH 3/6] Fix return-type --- src/PowerIdPDisco.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerIdPDisco.php b/src/PowerIdPDisco.php index 313a656..16b566a 100644 --- a/src/PowerIdPDisco.php +++ b/src/PowerIdPDisco.php @@ -292,7 +292,7 @@ protected function filterList(array $list): array * * @return \Symfony\Component\HttpFoundation\Response */ - public function handleRequest(): Template + public function handleRequest(): Response { $this->start(); From 5ce8894cf59571378145c9a202b0d697379ba66a Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 22 Aug 2024 10:53:46 +0200 Subject: [PATCH 4/6] Add missing use-statement --- src/PowerIdPDisco.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PowerIdPDisco.php b/src/PowerIdPDisco.php index 16b566a..6d123e2 100644 --- a/src/PowerIdPDisco.php +++ b/src/PowerIdPDisco.php @@ -13,6 +13,7 @@ use SimpleSAML\Utils; use SimpleSAML\XHTML\IdPDisco; use SimpleSAML\XHTML\Template; +use Symfony\Component\HttpFoundation\Response; /** * This class implements a generic IdP discovery service, for use in various IdP discovery service pages. This should From 40d952799ed69081e8995333c8ef7dcad29e3dfa Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 22 Aug 2024 11:00:34 +0200 Subject: [PATCH 5/6] TMP: use feature-branch of SimpleSAMLphp --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 421d772..bd84903 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "php": "^8.1", "simplesamlphp/assert": "^1.0.0", - "simplesamlphp/simplesamlphp": "^2.2.0", + "simplesamlphp/simplesamlphp": "dev-bugfix/discopwer-duplicate-date-header", "simplesamlphp/composer-module-installer": "^1.3.4", "symfony/http-foundation": "^6.4.0" }, From 9ab4a35882319dca25abc9cd1a2a6b5efc49a742 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 22 Aug 2024 13:00:35 +0200 Subject: [PATCH 6/6] Fix --- src/PowerIdPDisco.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/PowerIdPDisco.php b/src/PowerIdPDisco.php index 6d123e2..f462f60 100644 --- a/src/PowerIdPDisco.php +++ b/src/PowerIdPDisco.php @@ -296,6 +296,10 @@ protected function filterList(array $list): array public function handleRequest(): Response { $this->start(); + $result = $this->start(); + if ($result !== null) { + return $result; + } // no choice made. Show discovery service page $idpList = $this->getIdPList();