8000 [SecurityBundle] only pass relevant user provider · symfony/symfony@fbd9f88 · GitHub
[go: up one dir, main page]

Skip to content

Commit fbd9f88

Browse files
committed
[SecurityBundle] only pass relevant user provider
1 parent 29b5a6e commit fbd9f88

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -234,16 +234,6 @@ private function createFirewalls($config, ContainerBuilder $container)
234234
$firewalls = $config['firewalls'];
235235
$providerIds = $this->createUserProviders($config, $container);
236236

237-
// make the ContextListener aware of the configured user providers
238-
$definition = $container->getDefinition('security.context_listener');
239-
$arguments = $definition->getArguments();
240-
$userProviders = array();
241-
foreach ($providerIds as $userProviderId) {
242-
$userProviders[] = new Reference($userProviderId);
243-
}
244-
$arguments[1] = $userProviders;
245-
$definition->setArguments($arguments);
246-
247237
// load firewall map
248238
$mapDef = $container->getDefinition('security.firewall.map');
249239
$map = $authenticationProviders = $contextRefs = array();
@@ -327,7 +317,7 @@ private function createFirewall(ContainerBuilder $container, $id, $firewall, &$a
327317
$contextKey = $firewall['context'];
328318
}
329319

330-
$listeners[] = new Reference($this->createContextListener($container, $contextKey));
320+
$listeners[] = new Reference($this->createContextListener($container, $contextKey, $defaultProvider));
331321
}
332322

333323
$config->replaceArgument(6, $contextKey);
@@ -436,14 +426,15 @@ private function createFirewall(ContainerBuilder $container, $id, $firewall, &$a
436426
return array($matcher, $listeners, $exceptionListener);
437427
}
438428

439-
private function createContextListener($container, $contextKey)
429+
private function createContextListener($container, $contextKey, $providerId)
440430
{
441431
if (isset($this->contextListeners[$contextKey])) {
442432
return $this->contextListeners[$contextKey];
443433
}
444434

445435
$listenerId = 'security.context_listener.'.count($this->contextListeners);
446436
$listener = $container->setDefinition($listenerId, new ChildDefinition('security.context_listener'));
437+
$listener->replaceArgument(1, array(new Reference($providerId)));
447438
$listener->replaceArgument(2, $contextKey);
448439

449440
return $this->contextListeners[$contextKey] = $listenerId;

0 commit comments

Comments
 (0)
0