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 @@
-
+