From 1ef344b92fdbf839b7b126a71d23ea50922b854f Mon Sep 17 00:00:00 2001 From: Pavlo Rymarovych Date: Tue, 18 Nov 2025 21:45:44 +0200 Subject: [PATCH] Fix failure handler registration --- .../Factory/OAuthAuthenticatorFactory.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/DependencyInjection/Security/Factory/OAuthAuthenticatorFactory.php b/src/DependencyInjection/Security/Factory/OAuthAuthenticatorFactory.php index 9dc344a58..2451ff73f 100644 --- a/src/DependencyInjection/Security/Factory/OAuthAuthenticatorFactory.php +++ b/src/DependencyInjection/Security/Factory/OAuthAuthenticatorFactory.php @@ -139,15 +139,17 @@ public function getFirewallNames(): ArrayIterator protected function createAuthenticationFailureHandler(ContainerBuilder $container, string $id, array $config): string { $id = $this->getFailureHandlerId($id); - if ($container->has($id)) { - return $id; - } - $options = array_intersect_key($config, $this->defaultFailureHandlerOptions); - $failureHandler = $container->setDefinition($id, new ChildDefinition('security.authentication.custom_failure_handler')); - $failureHandler->replaceArgument(0, new ChildDefinition('hwi_oauth.authentication.failure_handler')); - $failureHandler->replaceArgument(1, $options); + if (isset($config['failure_handler'])) { + $failureHandler = $container->setDefinition($id, new ChildDefinition('security.authentication.custom_failure_handler')); + $failureHandler->replaceArgument(0, new ChildDefinition($config['failure_handler'])); + $failureHandler->replaceArgument(1, $options); + } else { + $failureHandler = $container->setDefinition($id, new ChildDefinition('security.authentication.custom_failure_handler')); + $failureHandler->replaceArgument(0, new ChildDefinition('hwi_oauth.authentication.failure_handler')); + $failureHandler->replaceArgument(1, $options); + } return $id; }