Skip to content

Commit 7ecfdff

Browse files
committed
fix(symfony): graphql security/validator only when enabled
1 parent 31b7a61 commit 7ecfdff

File tree

6 files changed

+42
-23
lines changed

6 files changed

+42
-23
lines changed

src/GraphQl/Tests/Util/ArrayTraitTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
declare(strict_types=1);
1313

14-
namespace ApiPlatform\Tests\Util;
14+
namespace ApiPlatform\GraphQl\Tests\Util;
1515

1616
use ApiPlatform\GraphQl\Util\ArrayTrait;
1717
use PHPUnit\Framework\TestCase;

src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php

+8
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,10 @@ private function registerValidatorConfiguration(ContainerBuilder $container, arr
704704
$loader->load('metadata/validator.xml');
705705
$loader->load('symfony/validator.xml');
706706

707+
if ($this->isConfigEnabled($container, $config['graphql'])) {
708+
$loader->load('graphql/validator.xml');
709+
}
710+
707711
$container->registerForAutoconfiguration(ValidationGroupsGeneratorInterface::class)
708712
->addTag('api_platform.validation_groups_generator');
709713
$container->registerForAutoconfiguration(PropertySchemaRestrictionMetadataInterface::class)
@@ -808,6 +812,10 @@ private function registerSecurityConfiguration(ContainerBuilder $container, arra
808812

809813
$loader->load('security.xml');
810814
$loader->load('legacy/security.xml');
815+
816+
if ($this->isConfigEnabled($container, $config['graphql'])) {
817+
$loader->load('graphql/security.xml');
818+
}
811819
}
812820

813821
private function registerOpenApiConfiguration(ContainerBuilder $container, array $config, XmlFileLoader $loader): void
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
5+
<services>
6+
<service id="api_platform.graphql.state_provider.access_checker" class="ApiPlatform\Symfony\Security\State\AccessCheckerProvider" decorates="api_platform.graphql.state_provider.read">
7+
<argument type="service" id="api_platform.graphql.state_provider.access_checker.inner" />
8+
<argument type="service" id="api_platform.security.resource_access_checker" />
9+
</service>
10+
11+
<service id="api_platform.graphql.state_provider.access_checker.post_deserialize" class="ApiPlatform\Symfony\Security\State\AccessCheckerProvider" decorates="api_platform.graphql.state_provider.denormalizer">
12+
<argument type="service" id="api_platform.graphql.state_provider.access_checker.post_deserialize.inner" />
13+
<argument type="service" id="api_platform.security.resource_access_checker" />
14+
<argument>post_denormalize</argument>
15+
</service>
16+
17+
<service id="api_platform.graphql.state_provider.access_checker.post_validate" class="ApiPlatform\Symfony\Security\State\AccessCheckerProvider" decorates="api_platform.graphql.state_provider.validate">
18+
<argument type="service" id="api_platform.graphql.state_provider.access_checker.post_validate.inner" />
19+
<argument type="service" id="api_platform.security.resource_access_checker" />
20+
<argument>post_validate</argument>
21+
</service>
22+
</services>
23+
</container>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<container xmlns="http://symfony.com/schema/dic/services"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
4+
<services>
5+
<service id="api_platform.graphql.state_provider.validate" class="ApiPlatform\Symfony\Validator\State\ValidateProvider" decorates="api_platform.graphql.state_provider" decoration-priority="200">
6+
<argument type="service" id="api_platform.graphql.state_provider.validate.inner" />
7+
<argument type="service" id="api_platform.validator" />
8+
</service>
9+
</services>
10+
</container>

src/Symfony/Bundle/Resources/config/security.xml

-17
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,6 @@
3333
<argument>post_validate</argument>
3434
</service>
3535

36-
<service id="api_platform.graphql.state_provider.access_checker" class="ApiPlatform\Symfony\Security\State\AccessCheckerProvider" decorates="api_platform.graphql.state_provider.read">
37-
<argument type="service" id="api_platform.graphql.state_provider.access_checker.inner" />
38-
<argument type="service" id="api_platform.security.resource_access_checker" />
39-
</service>
40-
41-
<service id="api_platform.graphql.state_provider.access_checker.post_deserialize" class="ApiPlatform\Symfony\Security\State\AccessCheckerProvider" decorates="api_platform.graphql.state_provider.denormalizer">
42-
<argument type="service" id="api_platform.graphql.state_provider.access_checker.post_deserialize.inner" />
43-
<argument type="service" id="api_platform.security.resource_access_checker" />
44-
<argument>post_denormalize</argument>
45-
</service>
46-
47-
<service id="api_platform.graphql.state_provider.access_checker.post_validate" class="ApiPlatform\Symfony\Security\State\AccessCheckerProvider" decorates="api_platform.graphql.state_provider.validate">
48-
<argument type="service" id="api_platform.graphql.state_provider.access_checker.post_validate.inner" />
49-
<argument type="service" id="api_platform.security.resource_access_checker" />
50-
<argument>post_validate</argument>
51-
</service>
52-
5336
<service id="api_platform.security.expression_language_provider" class="ApiPlatform\Symfony\Security\Core\Authorization\ExpressionLanguageProvider" public="false">
5437
<tag name="security.expression_language_provider" />
5538
</service>

src/Symfony/Bundle/Resources/config/symfony/validator.xml

-5
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,6 @@
2525
<argument type="service" id="api_platform.validator" />
2626
</service>
2727

28-
<service id="api_platform.graphql.state_provider.validate" class="ApiPlatform\Symfony\Validator\State\ValidateProvider" decorates="api_platform.graphql.state_provider" decoration-priority="200">
29-
<argument type="service" id="api_platform.graphql.state_provider.validate.inner" />
30-
<argument type="service" id="api_platform.validator" />
31-
</service>
32-
3328
</services>
3429

3530
</container>

0 commit comments

Comments
 (0)