bug #21811 Revert "[SecurityBundle] only pass relevant user provider" (xabbuh)

This PR was merged into the 3.3-dev branch.

Discussion
----------

Revert "[SecurityBundle] only pass relevant user provider"

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #21809, #21810
| License       | MIT
| Doc PR        |

This reverts commit d97e07fd6a (applies #21798 on `master`). There is no merge commit that could be reverted.

Commits
-------

5b016cef7b Revert "[SecurityBundle] only pass relevant user provider"
This commit is contained in:
Fabien Potencier 2017-03-01 07:33:13 -08:00
commit 7f27787dd0
1 changed files with 12 additions and 3 deletions

View File

@ -234,6 +234,16 @@ class SecurityExtension extends Extension
$firewalls = $config['firewalls'];
$providerIds = $this->createUserProviders($config, $container);
// make the ContextListener aware of the configured user providers
$definition = $container->getDefinition('security.context_listener');
$arguments = $definition->getArguments();
$userProviders = array();
foreach ($providerIds as $userProviderId) {
$userProviders[] = new Reference($userProviderId);
}
$arguments[1] = $userProviders;
$definition->setArguments($arguments);
// load firewall map
$mapDef = $container->getDefinition('security.firewall.map');
$map = $authenticationProviders = $contextRefs = array();
@ -317,7 +327,7 @@ class SecurityExtension extends Extension
$contextKey = $firewall['context'];
}
$listeners[] = new Reference($this->createContextListener($container, $contextKey, $defaultProvider));
$listeners[] = new Reference($this->createContextListener($container, $contextKey));
}
$config->replaceArgument(6, $contextKey);
@ -426,7 +436,7 @@ class SecurityExtension extends Extension
return array($matcher, $listeners, $exceptionListener);
}
private function createContextListener($container, $contextKey, $providerId)
private function createContextListener($container, $contextKey)
{
if (isset($this->contextListeners[$contextKey])) {
return $this->contextListeners[$contextKey];
@ -434,7 +444,6 @@ class SecurityExtension extends Extension
$listenerId = 'security.context_listener.'.count($this->contextListeners);
$listener = $container->setDefinition($listenerId, new ChildDefinition('security.context_listener'));
$listener->replaceArgument(1, array(new Reference($providerId)));
$listener->replaceArgument(2, $contextKey);
return $this->contextListeners[$contextKey] = $listenerId;