From 5e6b471a15fc10891906d39062e344901909e8ef Mon Sep 17 00:00:00 2001 From: Florent Destremau Date: Tue, 17 Jan 2023 16:14:21 +0100 Subject: [PATCH] Added condition to always return the real Authenticator --- .../Component/Security/Http/Event/CheckPassportEvent.php | 3 ++- .../Component/Security/Http/Event/LoginFailureEvent.php | 3 ++- .../Component/Security/Http/Event/LoginSuccessEvent.php | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Security/Http/Event/CheckPassportEvent.php b/src/Symfony/Component/Security/Http/Event/CheckPassportEvent.php index 18f540cba949b..5e3be93711a64 100644 --- a/src/Symfony/Component/Security/Http/Event/CheckPassportEvent.php +++ b/src/Symfony/Component/Security/Http/Event/CheckPassportEvent.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Security\Http\Event; use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface; +use Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Contracts\EventDispatcher\Event; @@ -37,7 +38,7 @@ public function __construct(AuthenticatorInterface $authenticator, Passport $pas public function getAuthenticator(): AuthenticatorInterface { - return $this->authenticator; + return $this->authenticator instanceof TraceableAuthenticator ? $this->authenticator->getAuthenticator() : $this->authenticator; } public function getPassport(): Passport diff --git a/src/Symfony/Component/Security/Http/Event/LoginFailureEvent.php b/src/Symfony/Component/Security/Http/Event/LoginFailureEvent.php index d3427c687d49d..bec3ccc79dc95 100644 --- a/src/Symfony/Component/Security/Http/Event/LoginFailureEvent.php +++ b/src/Symfony/Component/Security/Http/Event/LoginFailureEvent.php @@ -15,6 +15,7 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface; +use Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Contracts\EventDispatcher\Event; @@ -52,7 +53,7 @@ public function getException(): AuthenticationException public function getAuthenticator(): AuthenticatorInterface { - return $this->authenticator; + return $this->authenticator instanceof TraceableAuthenticator ? $this->authenticator->getAuthenticator() : $this->authenticator; } public function getFirewallName(): string diff --git a/src/Symfony/Component/Security/Http/Event/LoginSuccessEvent.php b/src/Symfony/Component/Security/Http/Event/LoginSuccessEvent.php index 581ec9c7d45eb..634c26ade25bb 100644 --- a/src/Symfony/Component/Security/Http/Event/LoginSuccessEvent.php +++ b/src/Symfony/Component/Security/Http/Event/LoginSuccessEvent.php @@ -16,6 +16,7 @@ use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface; +use Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Contracts\EventDispatcher\Event; @@ -50,7 +51,7 @@ public function __construct(AuthenticatorInterface $authenticator, Passport $pas public function getAuthenticator(): AuthenticatorInterface { - return $this->authenticator; + return $this->authenticator instanceof TraceableAuthenticator ? $this->authenticator->getAuthenticator() : $this->authenticator; } public function getPassport(): Passport