[SecurityBundle] Drop cache.security_expression_language definition if invalid

This commit is contained in:
Robin Chalas 2020-06-19 18:14:07 +02:00
parent b690a4a352
commit bc96693331
3 changed files with 20 additions and 7 deletions

View File

@ -33,5 +33,9 @@ class AddExpressionLanguageProvidersPass implements CompilerPassInterface
$definition->addMethodCall('registerProvider', [new Reference($id)]); $definition->addMethodCall('registerProvider', [new Reference($id)]);
} }
} }
if (!$container->hasDefinition('cache.system')) {
$container->removeDefinition('cache.security_expression_language');
}
} }
} }

View File

@ -87,7 +87,7 @@
<service id="security.user_checker" class="Symfony\Component\Security\Core\User\UserChecker" /> <service id="security.user_checker" class="Symfony\Component\Security\Core\User\UserChecker" />
<service id="security.expression_language" class="Symfony\Component\Security\Core\Authorization\ExpressionLanguage"> <service id="security.expression_language" class="Symfony\Component\Security\Core\Authorization\ExpressionLanguage">
<argument type="service" id="cache.security_expression_language"></argument> <argument type="service" id="cache.security_expression_language" on-invalid="null" />
</service> </service>
<service id="security.authentication_utils" class="Symfony\Component\Security\Http\Authentication\AuthenticationUtils" public="true"> <service id="security.authentication_utils" class="Symfony\Component\Security\Http\Authentication\AuthenticationUtils" public="true">

View File

@ -56,7 +56,7 @@ abstract class CompleteConfigurationTest extends TestCase
// chain provider // chain provider
$this->assertEquals([new IteratorArgument([ $this->assertEquals([new IteratorArgument([
new Reference('security.user.provider.concrete.service'), new Reference('user.manager'),
new Reference('security.user.provider.concrete.basic'), new Reference('security.user.provider.concrete.basic'),
])], $container->getDefinition('security.user.provider.concrete.chain')->getArguments()); ])], $container->getDefinition('security.user.provider.concrete.chain')->getArguments());
} }
@ -70,9 +70,9 @@ abstract class CompleteConfigurationTest extends TestCase
foreach (array_keys($arguments[1]->getValues()) as $contextId) { foreach (array_keys($arguments[1]->getValues()) as $contextId) {
$contextDef = $container->getDefinition($contextId); $contextDef = $container->getDefinition($contextId);
$arguments = $contextDef->getArguments(); $arguments = $contextDef->getArguments();
$listeners[] = array_map('strval', $arguments['index_0']->getValues()); $listeners[] = array_map('strval', $arguments[0]->getValues());
$configDef = $container->getDefinition((string) $arguments['index_3']); $configDef = $container->getDefinition((string) $arguments[3]);
$configs[] = array_values($configDef->getArguments()); $configs[] = array_values($configDef->getArguments());
} }
@ -87,6 +87,14 @@ abstract class CompleteConfigurationTest extends TestCase
'security.user_checker', 'security.user_checker',
'.security.request_matcher.xmi9dcw', '.security.request_matcher.xmi9dcw',
false, false,
false,
'',
'',
'',
'',
'',
[],
null,
], ],
[ [
'secure', 'secure',
@ -657,9 +665,9 @@ abstract class CompleteConfigurationTest extends TestCase
foreach (array_keys($arguments[1]->getValues()) as $contextId) { foreach (array_keys($arguments[1]->getValues()) as $contextId) {
$contextDef = $container->getDefinition($contextId); $contextDef = $container->getDefinition($contextId);
$arguments = $contextDef->getArguments(); $arguments = $contextDef->getArguments();
$listeners[] = array_map('strval', $arguments['index_0']->getValues()); $listeners[] = array_map('strval', $arguments[0]->getValues());
$configDef = $container->getDefinition((string) $arguments['index_3']); $configDef = $container->getDefinition((string) $arguments[3]);
$configs[] = array_values($configDef->getArguments()); $configs[] = array_values($configDef->getArguments());
} }
@ -708,6 +716,8 @@ abstract class CompleteConfigurationTest extends TestCase
$container = new ContainerBuilder(); $container = new ContainerBuilder();
$container->setParameter('kernel.debug', false); $container->setParameter('kernel.debug', false);
$container->setParameter('request_listener.http_port', 80);
$container->setParameter('request_listener.https_port', 443);
$security = new SecurityExtension(); $security = new SecurityExtension();
$container->registerExtension($security); $container->registerExtension($security);
@ -716,7 +726,6 @@ abstract class CompleteConfigurationTest extends TestCase
$bundle->build($container); // Attach all default factories $bundle->build($container); // Attach all default factories
$this->getLoader($container)->load($file); $this->getLoader($container)->load($file);
$container->getCompilerPassConfig()->setOptimizationPasses([]);
$container->getCompilerPassConfig()->setRemovingPasses([]); $container->getCompilerPassConfig()->setRemovingPasses([]);
$container->getCompilerPassConfig()->setAfterRemovingPasses([]); $container->getCompilerPassConfig()->setAfterRemovingPasses([]);
$container->compile(); $container->compile();