From d97e07fd6a836985804f529191b99ea1915335e8 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Mon, 27 Feb 2017 22:20:22 +0100 Subject: [PATCH] =?UTF-8?q?[SecurityBundle]=C2=A0only=20pass=20relevant=20?= =?UTF-8?q?user=20provider?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DependencyInjection/SecurityExtension.php | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index 36c16e0dbc..625b475b3c 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -214,16 +214,6 @@ 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 = array(); @@ -288,7 +278,7 @@ class SecurityExtension extends Extension $contextKey = $firewall['context']; } - $listeners[] = new Reference($this->createContextListener($container, $contextKey)); + $listeners[] = new Reference($this->createContextListener($container, $contextKey, $defaultProvider)); } // Logout listener @@ -371,7 +361,7 @@ class SecurityExtension extends Extension return array($matcher, $listeners, $exceptionListener); } - private function createContextListener($container, $contextKey) + private function createContextListener($container, $contextKey, $providerId) { if (isset($this->contextListeners[$contextKey])) { return $this->contextListeners[$contextKey]; @@ -379,6 +369,7 @@ class SecurityExtension extends Extension $listenerId = 'security.context_listener.'.count($this->contextListeners); $listener = $container->setDefinition($listenerId, new DefinitionDecorator('security.context_listener')); + $listener->replaceArgument(1, array(new Reference($providerId))); $listener->replaceArgument(2, $contextKey); return $this->contextListeners[$contextKey] = $listenerId;