diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php index f7500f05e3b9..21ea54f13a5c 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php @@ -41,9 +41,9 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider, ->addArgument($config['secret']) ->addArgument($id) ; - + $hasTokenProvider = isset($config['token_provider']); // remember me services - if (isset($config['token_provider'])) { + if ($hasTokenProvider) { $templateId = 'security.authentication.rememberme.services.persistent'; $rememberMeServicesId = $templateId.'.'.$id; } else { @@ -62,7 +62,7 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider, $rememberMeServices->replaceArgument(1, $config['secret']); $rememberMeServices->replaceArgument(2, $id); - if (isset($config['token_provider'])) { + if ($hasTokenProvider) { $rememberMeServices->addMethodCall('setTokenProvider', [ new Reference($config['token_provider']), ]); diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index 5930e4619a4e..8ccb908604c5 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -344,7 +344,12 @@ private function createFirewall(ContainerBuilder $container, string $id, array $ 'csrf_token_id' => $firewall['logout']['csrf_token_id'], 'logout_path' => $firewall['logout']['path'], ]); - + if ($container->has('security.authentication.rememberme.services.persistent'.$id)) { + $logoutListener->replaceArgument(7, 'security.authentication.rememberme.services.persistent'.$id); + } + if ($container->has('security.authentication.rememberme.services.simplehash'.$id)) { + $logoutListener->replaceArgument(7, 'security.authentication.rememberme.services.simplehash'.$id); + } // add logout success handler if (isset($firewall['logout']['success_handler'])) { $logoutSuccessHandlerId = $firewall['logout']['success_handler']; diff --git a/src/Symfony/Bundle/SecurityBundle/Resources/config/security_listeners.xml b/src/Symfony/Bundle/SecurityBundle/Resources/config/security_listeners.xml index b34c52da76fb..e99086e20a70 100644 --- a/src/Symfony/Bundle/SecurityBundle/Resources/config/security_listeners.xml +++ b/src/Symfony/Bundle/SecurityBundle/Resources/config/security_listeners.xml @@ -43,7 +43,7 @@ - +