Skip to content

Commit 6c3f473

Browse files
committed
bug symfony#25100 [SecurityBundle] providerIds is undefined error when firewall provider is not specified (karser)
This PR was squashed before being merged into the 3.4 branch (closes symfony#25100). Discussion ---------- [SecurityBundle] providerIds is undefined error when firewall provider is not specified | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | n/a | License | MIT | Doc PR | n/a If I don't specify user provider on a firewall, it throws an error: `Undefined variable: providerIds`. That's because of $providerIds in [3.4-RC1](https://github.com/symfony/symfony/blob/v3.4.0-RC1/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php#L696) that is not defined. ``` private function createSwitchUserListener($container, $id, $config, $defaultProvider, $stateless) { $userProvider = isset($config['provider']) ? $this->getUserProviderId($config['provider']) : ($defaultProvider ?: $this->getFirstProvider($id, 'switch_user', $providerIds)); ``` In fact, in [master](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php#L599) it's fixed If I add a provider to the firewall, this error doesn't reproduce: ``` secured_area: switch_user: true provider: chain_provider ``` Commits ------- 74dad79 [SecurityBundle] providerIds is undefined error when firewall provider is not specified
2 parents 4c93028 + 74dad79 commit 6c3f473

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ private function createFirewall(ContainerBuilder $container, $id, $firewall, &$a
448448
// Switch user listener
449449
if (isset($firewall['switch_user'])) {
450450
$listenerKeys[] = 'switch_user';
451-
$listeners[] = new Reference($this->createSwitchUserListener($container, $id, $firewall['switch_user'], $defaultProvider, $firewall['stateless']));
451+
$listeners[] = new Reference($this->createSwitchUserListener($container, $id, $firewall['switch_user'], $defaultProvider, $firewall['stateless'], $providerIds));
452452
}
453453

454454
// Access listener
@@ -691,7 +691,7 @@ private function createExceptionListener($container, $config, $id, $defaultEntry
691691
return $exceptionListenerId;
692692
}
693693

694-
private function createSwitchUserListener($container, $id, $config, $defaultProvider, $stateless)
694+
private function createSwitchUserListener($container, $id, $config, $defaultProvider, $stateless, $providerIds)
695695
{
696696
$userProvider = isset($config['provider']) ? $this->getUserProviderId($config['provider']) : ($defaultProvider ?: $this->getFirstProvider($id, 'switch_user', $providerIds));
697697

0 commit comments

Comments
 (0)