@@ -331,10 +331,10 @@ private function createFirewall(ContainerBuilder $container, $id, $firewall, &$a
331
331
332
332
// Provider id (take the first registered provider if none defined)
333
333
if (isset ($ firewall ['provider ' ])) {
334
- $ defaultProvider = $ this ->getUserProviderId ($ firewall ['provider ' ]);
335
- if (!in_array ($ defaultProvider , $ providerIds , true )) {
334
+ if (!$ this ->isValidProviderName ($ firewall ['provider ' ], $ providerIds )) {
336
335
throw new InvalidConfigurationException (sprintf ('Invalid firewall "%s": user provider "%s" not found. ' , $ id , $ firewall ['provider ' ]));
337
336
}
337
+ $ defaultProvider = $ providerIds [$ firewall ]['provider ' ];
338
338
} else {
339
339
$ defaultProvider = reset ($ providerIds );
340
340
}
@@ -491,10 +491,10 @@ private function createAuthenticationListeners($container, $id, $firewall, &$aut
491
491
492
492
if (isset ($ firewall [$ key ])) {
493
493
if (isset ($ firewall [$ key ]['provider ' ])) {
494
- if (!in_array ($ firewall [$ key ]['provider ' ], $ providerIds, true )) {
494
+ if (!$ this -> isValidProviderName ($ firewall [$ key ]['provider ' ], $ providerIds )) {
495
495
throw new InvalidConfigurationException (sprintf ('Invalid firewall "%s": user provider "%s" not found. ' , $ id , $ firewall [$ key ]['provider ' ]));
496
496
}
497
- $ userProvider = $ this -> getUserProviderId ( $ firewall [$ key ]['provider ' ]) ;
497
+ $ userProvider = $ providerIds [ $ firewall [$ key ]['provider ' ]] ;
498
498
} else {
499
499
$ userProvider = $ defaultProvider ;
500
500
}
@@ -596,7 +596,7 @@ private function createUserProviders($config, ContainerBuilder $container)
596
596
$ providerIds = array ();
597
597
foreach ($ config ['providers ' ] as $ name => $ provider ) {
598
598
$ id = $ this ->createUserDaoProvider ($ name , $ provider , $ container );
599
- $ providerIds [] = $ id ;
599
+ $ providerIds [$ name ] = $ id ;
600
600
}
601
601
602
602
return $ providerIds ;
@@ -647,6 +647,11 @@ private function getUserProviderId($name)
647
647
return 'security.user.provider.concrete. ' .strtolower ($ name );
648
648
}
649
649
650
+ private function isValidProviderName ($ providerName , array $ allowedProviders )
651
+ {
652
+ return isset ($ allowedProviders [$ providerName ]) || isset ($ allowedProviders [str_replace ('- ' , '_ ' , $ providerName )]);
653
+ }
654
+
650
655
private function createExceptionListener ($ container , $ config , $ id , $ defaultEntryPoint , $ stateless )
651
656
{
652
657
$ exceptionListenerId = 'security.exception_listener. ' .$ id ;
0 commit comments