<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>
        <parameter key="SwagPlatformSecurity.knownIssues" type="collection">
            <parameter>Swag\Security\Fixes\GHSA9v82vcjxm76j\EncodeActiveRouteParams</parameter>
            <parameter>Swag\Security\Fixes\GHSAr2vghvjmfg38\CancelOrderRouteFix</parameter>
            <parameter>Swag\Security\Fixes\GHSAh2x3h9qrcf82\CheckSubscriptionCustomerCSRF</parameter>
            <parameter>Swag\Security\Fixes\GHSA6wh5mw9h5c3w\DetectPathTraversalInZipFiles</parameter>
            <parameter>Swag\Security\Fixes\GHSAm8952hj38cg9\MediaAggregations</parameter>
            <parameter>Swag\Security\Fixes\GHSA27c9vp3w6ww8\SensitiveDataExportFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA3cppfv95mpr5\SsrfDocumentGenerationFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA2w46vq8h98vh\ChangeEmailRouteFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA6w82v552wjw2\StorefrontLoginFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA7cw67h3hv8pf\TwigSecurityExtensionFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA7vvpj5735584\OrderRouteFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA9v5m39wh5chq\HandlePaymentMethodRouteFix</parameter>
            <parameter>Swag\Security\Fixes\GHSAgqc5xv7mgcjq\LoginRouteFix</parameter>
            <parameter>Swag\Security\Fixes\GHSAc4p7rwrgpf6p\AppRegistrationFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA7w527jvmm9vw\OAuthRepositoriesFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA8v9pg828v98f\UserRecoveryFix</parameter>
            <parameter>Swag\Security\Fixes\GHSAgv8p48fr4fxg\IntegrationAdminWriteProtectedFix</parameter>
            <parameter>Swag\Security\Fixes\GHSAv39m97p8gqg7\AclUserPrivilegeEscalationFix</parameter>
            <parameter>Swag\Security\Fixes\GHSA4x3x869wxx3m\SsoAuthOpenRedirectFix</parameter>
            <parameter>Swag\Security\Fixes\GHSAxvhcgm7jmhmc\SvgContentValidationFix</parameter>
            <parameter>Swag\Security\Fixes\GHSAf8q63g5wjjr6\OrderActionControllerACLPermissionsFix</parameter>
            <parameter>Swag\Security\Fixes\GHSAgq965pfxf4vc\MediaUploadServiceFix</parameter>
        </parameter>
    </parameters>

    <services>
        <service id="Swag\Security\Components\State">
            <argument>%SwagPlatformSecurity.availableFixes%</argument>
            <argument>%SwagPlatformSecurity.activeFixes%</argument>
        </service>

        <service id="Swag\Security\Twig\RouteExistsTwigExtension">
            <argument type="service" id="router"/>

            <tag name="twig.extension"/>
        </service>

        <service id="Swag\Security\Twig\SecurityNamespaceHierarchyBuilder">
            <argument type="service" id="kernel"/>
            <argument type="service" id="Shopware\Core\Framework\Plugin\KernelPluginLoader\KernelPluginLoader"/>
            <argument type="service" id="Swag\Security\Components\State"/>

            <tag name="shopware.twig.hierarchy_builder" priority="200"/>
        </service>

        <service id="Swag\Security\Api\SecurityController" public="true">
            <argument type="service" id="Swag\Security\Components\State"/>
            <argument>%kernel.cache_dir%</argument>
        </service>

        <service id="Swag\Security\Api\ConfigController" public="true">
            <argument type="service" id="Doctrine\DBAL\Connection"/>
            <argument type="service" id="user.repository"/>
        </service>

        <service id="Swag\Security\Subscriber\AdminSecurityFixesProvider" public="true">
            <argument type="service" id="Swag\Security\Components\State"/>

            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="Swag\Security\Subscriber\TwigStateProvider" public="true">
            <argument type="service" id="Swag\Security\Components\State"/>

            <tag name="kernel.event_listener"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAm8952hj38cg9\MediaVisibilityRestrictionSubscriber">
            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAm8952hj38cg9\EntityAggregatorDecorator"
                 decorates="Shopware\Core\Framework\DataAbstractionLayer\Search\EntityAggregatorInterface"
                 decoration-priority="2000"
        >
            <argument type="service" id="Swag\Security\Fixes\GHSAm8952hj38cg9\EntityAggregatorDecorator.inner"/>
            <argument type="service" id="event_dispatcher"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA9v82vcjxm76j\EncodeActiveRouteParams" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAr2vghvjmfg38\CancelOrderRouteFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAr2vghvjmfg38\CancelOrderRouteDecorator"
                 decorates="Shopware\Core\Checkout\Order\SalesChannel\CancelOrderRoute"
                 public="true">
            <argument type="service" id=".inner"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAr2vghvjmfg38\CancelOrderRouteFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA6wh5mw9h5c3w\DetectPathTraversalInZipFiles" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAm8952hj38cg9\MediaAggregations" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Shopware\Core\Framework\Plugin\PluginExtractor" class="Swag\Security\Fixes\GHSA6wh5mw9h5c3w\FixedExtensionExtractor">
            <argument type="collection">
                <argument key="plugin">%kernel.plugin_dir%</argument>
                <argument key="app">%kernel.app_dir%</argument>
            </argument>
            <argument type="service" id="Symfony\Component\Filesystem\Filesystem"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAh2x3h9qrcf82\CheckSubscriptionCustomerCSRF" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAh2x3h9qrcf82\DecoratedSubscriptionActivateRoute"
                 decorates="Shopware\Commercial\Subscription\Api\Route\Subscription\SubscriptionActivateRoute"
                 decoration-on-invalid="ignore"
                 public="true">
            <argument type="service" id=".inner"/>
            <argument type="service" id="subscription.repository"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAh2x3h9qrcf82\CheckSubscriptionCustomerCSRF"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAh2x3h9qrcf82\DecoratedSubscriptionCancelRoute"
                 decorates="Shopware\Commercial\Subscription\Api\Route\Subscription\SubscriptionCancelRoute"
                 decoration-on-invalid="ignore"
                 public="true">
            <argument type="service" id=".inner"/>
            <argument type="service" id="subscription.repository"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAh2x3h9qrcf82\CheckSubscriptionCustomerCSRF"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAh2x3h9qrcf82\DecoratedSubscriptionPauseRoute"
                 decorates="Shopware\Commercial\Subscription\Api\Route\Subscription\SubscriptionPauseRoute"
                 decoration-on-invalid="ignore"
                 public="true">
            <argument type="service" id=".inner"/>
            <argument type="service" id="subscription.repository"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAh2x3h9qrcf82\CheckSubscriptionCustomerCSRF"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA27c9vp3w6ww8\SensitiveDataExportFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA27c9vp3w6ww8\ImportExportConfigSubscriber">
            <argument type="service" id="Shopware\Core\Framework\DataAbstractionLayer\DefinitionInstanceRegistry"/>
            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA3cppfv95mpr5\SsrfDocumentGenerationFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA3cppfv95mpr5\DocumentConfigSubscriber">
            <argument type="service" id="Shopware\Core\Framework\Util\HtmlSanitizer"/>
            <tag name="kernel.event_subscriber"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA2w46vq8h98vh\FixChangeEmailRoute"
                 decorates="Shopware\Core\Checkout\Customer\SalesChannel\ChangeEmailRoute"
                 public="true">
            <argument type="service" id=".inner"/>
            <argument type="service" id="customer_recovery.repository"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSA2w46vq8h98vh\ChangeEmailRouteFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA6w82v552wjw2\StorefrontLoginFix" public="true">
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSA6w82v552wjw2\StorefrontLoginFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAgqc5xv7mgcjq\LoginRouteFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAgqc5xv7mgcjq\LoginRouteDecorator"
                 decorates="Shopware\Core\Checkout\Customer\SalesChannel\LoginRoute"
                 decoration-priority="999999"
                 public="true">
            <argument type="service" id=".inner"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAgqc5xv7mgcjq\LoginRouteFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA7cw67h3hv8pf\TwigSecurityExtensionFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA7vvpj5735584\OrderRouteFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <!-- needs to be before pot. commercial decorators, which override the route definition, therefore use high decoration priority -->
        <service id="Swag\Security\Fixes\GHSA7vvpj5735584\OrderRouteDecorator"
                 decorates="Shopware\Core\Checkout\Order\SalesChannel\OrderRoute"
                 decoration-priority="999999"
                 public="true">
            <argument type="service" id=".inner"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSA7vvpj5735584\OrderRouteFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA9v5m39wh5chq\HandlePaymentMethodRouteFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA9v5m39wh5chq\HandlePaymentMethodRouteDecorator"
                 decorates="Shopware\Core\Checkout\Payment\SalesChannel\HandlePaymentMethodRoute"
                 decoration-priority="999999"
                 public="true">
            <argument type="service" id=".inner"/>
            <argument type="service" id="order.repository"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSA9v5m39wh5chq\HandlePaymentMethodRouteFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAc4p7rwrgpf6p\AppRegistrationFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAc4p7rwrgpf6p\HandshakeFactory">
            <argument type="string">%env(APP_URL)%</argument>
            <argument type="service" id="Shopware\Core\Framework\App\ShopId\ShopIdProvider"/>
            <argument type="service" id="Shopware\Core\Framework\Store\Services\StoreClient"/>
            <argument>%kernel.shopware_version%</argument>

            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAc4p7rwrgpf6p\AppRegistrationFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAc4p7rwrgpf6p\AppSecretRotationService" public="true">
            <argument type="service" id="Shopware\Core\Framework\App\Lifecycle\Registration\AppRegistrationService"/>
            <argument type="service" id="app.repository"/>
            <argument type="service" id="integration.repository"/>
            <argument type="service" id="Shopware\Core\Framework\App\Source\SourceResolver"/>
            <argument type="service" id="messenger.default_bus"/>
            <argument type="service" id="logger"/>
            <argument type="service" id="Shopware\Core\Framework\App\Manifest\ManifestFactory"/>

            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAc4p7rwrgpf6p\AppRegistrationFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAc4p7rwrgpf6p\AppSecretRotationController" public="true">
            <argument type="service" id="app.repository"/>
            <argument type="service" id="Swag\Security\Fixes\GHSAc4p7rwrgpf6p\AppSecretRotationService"/>

            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAc4p7rwrgpf6p\AppRegistrationFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA7w527jvmm9vw\OAuthRepositoriesFix" public="true">
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSA7w527jvmm9vw\OAuthRepositoriesFix"/>
        </service>
        <service id="Swag\Security\Fixes\GHSA8v9pg828v98f\UserRecoveryFix" public="true">
            <tag name="swag.security.fix"/>
        </service>
        <service id="Swag\Security\Fixes\GHSAgv8p48fr4fxg\IntegrationAdminWriteProtectedFix" public="true">
            <tag name="swag.security.fix"/>
        </service>
        <service id="Swag\Security\Fixes\GHSAv39m97p8gqg7\AclUserPrivilegeEscalationFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAv39m97p8gqg7\UpsertUserAdminFieldListener">
            <tag name="kernel.event_subscriber"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAv39m97p8gqg7\AclUserPrivilegeEscalationFix"/>
        </service>
        <service id="Swag\Security\Fixes\GHSA4x3x869wxx3m\SsoAuthOpenRedirectFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSA4x3x869wxx3m\SsoAuthRefererListener">
            <argument type="service" id="router"/>
            <tag name="kernel.event_subscriber"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSA4x3x869wxx3m\SsoAuthOpenRedirectFix"/>
        </service>
        <service id="Swag\Security\Fixes\GHSAxvhcgm7jmhmc\SvgContentValidationFix" public="true">
            <tag name="swag.security.fix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAxvhcgm7jmhmc\SvgContentValidator">
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAxvhcgm7jmhmc\SvgContentValidationFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAxvhcgm7jmhmc\FileSaverDecorator"
                 decorates="Shopware\Core\Content\Media\File\FileSaver"
                 public="true">
            <argument type="service" id=".inner"/>
            <argument type="service" id="Swag\Security\Fixes\GHSAxvhcgm7jmhmc\SvgContentValidator"/>
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAxvhcgm7jmhmc\SvgContentValidationFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAf8q63g5wjjr6\OrderActionControllerACLPermissionsFix" public="true">
            <tag name="swag.security.fix" ticket="Swag\Security\Fixes\GHSAf8q63g5wjjr6\OrderActionControllerACLPermissionsFix"/>
        </service>

        <service id="Swag\Security\Fixes\GHSAf8q63g5wjjr6\OrderActionControllerACLDecorator"
                 decorates="Shopware\Core\Checkout\Order\Api\OrderActionController"
                 decoration-priority="999999"
                 public="true">
            <argument type="service" id=".inner"/>

            <call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
        </service>
    </services>
</container>
