@@ -214,16 +214,6 @@ private function createFirewalls($config, ContainerBuilder $container)
214
214
$ firewalls = $ config ['firewalls ' ];
215
215
$ providerIds = $ this ->createUserProviders ($ config , $ container );
216
216
217
- // make the ContextListener aware of the configured user providers
218
- $ definition = $ container ->getDefinition ('security.context_listener ' );
219
- $ arguments = $ definition ->getArguments ();
220
- $ userProviders = array ();
221
- foreach ($ providerIds as $ userProviderId ) {
222
- $ userProviders [] = new Reference ($ userProviderId );
223
- }
224
- $ arguments [1 ] = $ userProviders ;
225
- $ definition ->setArguments ($ arguments );
226
-
227
217
// load firewall map
228
218
$ mapDef = $ container ->getDefinition ('security.firewall.map ' );
229
219
$ map = $ authenticationProviders = array ();
@@ -288,7 +278,7 @@ private function createFirewall(ContainerBuilder $container, $id, $firewall, &$a
288
278
$ contextKey = $ firewall ['context ' ];
289
279
}
290
280
291
- $ listeners [] = new Reference ($ this ->createContextListener ($ container , $ contextKey ));
281
+ $ listeners [] = new Reference ($ this ->createContextListener ($ container , $ contextKey, $ defaultProvider ));
292
282
}
293
283
294
284
// Logout listener
@@ -371,14 +361,15 @@ private function createFirewall(ContainerBuilder $container, $id, $firewall, &$a
371
361
return array ($ matcher , $ listeners , $ exceptionListener );
372
362
}
373
363
374
- private function createContextListener ($ container , $ contextKey )
364
+ private function createContextListener ($ container , $ contextKey, $ providerId )
375
365
{
376
366
if (isset ($ this ->contextListeners [$ contextKey ])) {
377
367
return $ this ->contextListeners [$ contextKey ];
378
368
}
379
369
380
370
$ listenerId = 'security.context_listener. ' .count ($ this ->contextListeners );
381
371
$ listener = $ container ->setDefinition ($ listenerId , new DefinitionDecorator ('security.context_listener ' ));
372
+ $ listener ->replaceArgument (1 , array (new Reference ($ providerId )));
382
373
$ listener ->replaceArgument (2 , $ contextKey );
383
374
384
375
return $ this ->contextListeners [$ contextKey ] = $ listenerId ;
0 commit comments