[SecurityBundle] Don't require a user provider for the anonymous listener

This commit is contained in:
Robin Chalas 2019-11-23 05:18:35 +01:00
parent a8a9e69488
commit 0950cfbc65
2 changed files with 4 additions and 3 deletions

View File

@ -464,8 +464,8 @@ class SecurityExtension extends Extension implements PrependExtensionInterface
throw new InvalidConfigurationException(sprintf('Invalid firewall "%s": user provider "%s" not found.', $id, $firewall[$key]['provider']));
}
$userProvider = $providerIds[$normalizedName];
} elseif ('remember_me' === $key) {
// RememberMeFactory will use the firewall secret when created
} elseif ('remember_me' === $key || 'anonymous' === $key) {
// RememberMeFactory will use the firewall secret when created, AnonymousAuthenticationListener does not load users.
$userProvider = null;
} elseif ($defaultProvider) {
$userProvider = $defaultProvider;

View File

@ -210,7 +210,7 @@ class SecurityExtensionTest extends TestCase
$container->compile();
}
public function testPerListenerProviderWithRememberMe()
public function testPerListenerProviderWithRememberMeAndAnonymous()
{
$container = $this->getRawContainer();
$container->loadFromExtension('security', [
@ -223,6 +223,7 @@ class SecurityExtensionTest extends TestCase
'default' => [
'form_login' => ['provider' => 'second'],
'remember_me' => ['secret' => 'baz'],
'anonymous' => true,
],
],
]);