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