bug #34536 [SecurityBundle] Don't require a user provider for the anonymous listener (chalasr)

This PR was merged into the 4.4 branch.

Discussion
----------

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

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #34504
| License       | MIT
| Doc PR        | -

Forgotten when adding the AnonymousFactory in #33503

Commits
-------

0950cfbc65 [SecurityBundle] Don't require a user provider for the anonymous listener
This commit is contained in:
Fabien Potencier 2019-11-25 07:29:03 +01:00
commit 218eb24197
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,
],
],
]);