From 038cf83d8511d45901f4c67859898656835fc9ba Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 14 Jul 2025 10:35:24 +0200 Subject: [PATCH] phpCAS --- src/EventListener/LogoutListener.php | 2 +- src/Security/DynamicAuthenticator.php | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/EventListener/LogoutListener.php b/src/EventListener/LogoutListener.php index f2d0544..3921cd2 100644 --- a/src/EventListener/LogoutListener.php +++ b/src/EventListener/LogoutListener.php @@ -20,7 +20,7 @@ final class LogoutListener { if ('CAS' == $this->parameterBag->get('modeAuth')) { $request = $event->getRequest(); - $host = $request->headers->get('X-Forwarded-Host') ?? $request->getHost().($request->getPort() ? ':'.$request->getPort() : ''); + $host = $request->headers->get('host'); $scheme = $request->headers->get('X-Forwarded-Proto') ?? $request->getScheme(); $url = $scheme.'://'.$host; \phpCAS::client(CAS_VERSION_2_0, $this->parameterBag->get('casHost'), (int) $this->parameterBag->get('casPort'), $this->parameterBag->get('casPath'), $url, false); diff --git a/src/Security/DynamicAuthenticator.php b/src/Security/DynamicAuthenticator.php index 0e58ded..fab1342 100644 --- a/src/Security/DynamicAuthenticator.php +++ b/src/Security/DynamicAuthenticator.php @@ -96,14 +96,21 @@ class DynamicAuthenticator extends AbstractAuthenticator private function authenticateWithCas(Request $request): Passport { // Récupérer l'hôte d'origine derrière le reverse proxy - $host = $request->headers->get('X-Forwarded-Host') ?? $request->getHost().($request->getPort() ? ':'.$request->getPort() : ''); + $host = $request->headers->get('host'); $scheme = $request->headers->get('X-Forwarded-Proto') ?? $request->getScheme(); // Construire l'URL $url = $scheme.'://'.$host; // \phpCAS::setDebug('/tmp/logcas.log'); - \phpCAS::client(CAS_VERSION_2_0, $this->parameterBag->get('casHost'), (int) $this->parameterBag->get('casPort'), $this->parameterBag->get('casPath'), $url, false); + \phpCAS::client( + CAS_VERSION_2_0, + $this->parameterBag->get('casHost'), + (int) $this->parameterBag->get('casPort'), + $this->parameterBag->get('casPath'), + $url, + false); + \phpCAS::setNoCasServerValidation(); \phpCAS::forceAuthentication();