Merge branch '1.14' into 2.0

* 1.14:
  [API] Rename and deprecate route parameters
  [UserBundle] Deprecate security related classes and services that will be removed in 2.0
This commit is contained in:
Grzegorz Sadowski 2024-10-17 12:36:14 +02:00
commit 5214bbb114
No known key found for this signature in database
GPG key ID: EF87FF4E6E3BD364
16 changed files with 78 additions and 54 deletions

14
UPGRADE-API-1.14.md Normal file
View file

@ -0,0 +1,14 @@
# UPGRADE FROM `v1.13.X` TO `v1.14.0`
1. The following old parameters have been deprecated and will be removed in Sylius 2.0. Use the corresponding new parameters instead:
| Old parameter | New parameter |
|----------------------------------------------|------------------------------------------|
| `sylius.security.new_api_route` | `sylius.security.api_route` |
| `sylius.security.new_api_regex` | `sylius.security.api_regex` |
| `sylius.security.new_api_admin_route` | `sylius.security.api_admin_route` |
| `sylius.security.new_api_admin_regex` | `sylius.security.api_admin_regex` |
| `sylius.security.new_api_shop_route` | `sylius.security.api_shop_route` |
| `sylius.security.new_api_shop_regex` | `sylius.security.api_shop_regex` |
| `sylius.security.new_api_user_account_route` | `sylius.security.api_shop_account_route` |
| `sylius.security.new_api_user_account_regex` | `sylius.security.api_shop_account_regex` |

View file

@ -40,13 +40,13 @@ security:
target: sylius_admin_login
new_api_admin_user:
pattern: "%sylius.security.new_api_admin_regex%/.*"
pattern: "%sylius.security.api_admin_regex%/.*"
provider: sylius_api_admin_user_provider
user_checker: security.user_checker.chain.new_api_admin_user
stateless: true
entry_point: jwt
json_login:
check_path: "%sylius.security.new_api_admin_route%/administrators/token"
check_path: "%sylius.security.api_admin_route%/administrators/token"
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
@ -54,13 +54,13 @@ security:
jwt: true
new_api_shop_user:
pattern: "%sylius.security.new_api_shop_regex%/.*"
pattern: "%sylius.security.api_shop_regex%/.*"
provider: sylius_api_shop_user_provider
user_checker: security.user_checker.chain.new_api_shop_user
stateless: true
entry_point: jwt
json_login:
check_path: "%sylius.security.new_api_shop_route%/customers/token"
check_path: "%sylius.security.api_shop_route%/customers/token"
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
@ -122,9 +122,9 @@ security:
- { path: "%sylius.security.admin_regex%", role: ROLE_ADMINISTRATION_ACCESS }
- { path: "%sylius.security.shop_regex%/account", role: ROLE_USER }
- { path: "%sylius.security.new_api_admin_route%/administrators/reset-password", role: PUBLIC_ACCESS }
- { path: "%sylius.security.new_api_admin_regex%/.*", role: ROLE_API_ACCESS }
- { path: "%sylius.security.new_api_admin_route%/administrators/token", role: PUBLIC_ACCESS }
- { path: "%sylius.security.new_api_user_account_regex%/.*", role: ROLE_USER }
- { path: "%sylius.security.new_api_shop_route%/customers/token", role: PUBLIC_ACCESS }
- { path: "%sylius.security.new_api_shop_regex%/.*", role: PUBLIC_ACCESS }
- { path: "%sylius.security.api_admin_route%/administrators/reset-password", role: PUBLIC_ACCESS }
- { path: "%sylius.security.api_admin_regex%/.*", role: ROLE_API_ACCESS }
- { path: "%sylius.security.api_admin_route%/administrators/token", role: PUBLIC_ACCESS }
- { path: "%sylius.security.api_shop_account_regex%/.*", role: ROLE_USER }
- { path: "%sylius.security.api_shop_route%/customers/token", role: PUBLIC_ACCESS }
- { path: "%sylius.security.api_shop_regex%/.*", role: PUBLIC_ACCESS }

View file

@ -1,3 +1,3 @@
sylius_api:
resource: "@SyliusApiBundle/Resources/config/routing.yml"
prefix: "%sylius.security.new_api_route%"
prefix: "%sylius.security.api_route%"

View file

@ -37,13 +37,13 @@ We will modify the same file as in example on top, the ``security.yaml``:
# config/packages/security.yaml
security:
access_control:
- { path: "%sylius.security.new_api_shop_regex%/orders", method: POST, GET , role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: "%sylius.security.new_api_shop_regex%/orders/.*/items", method: POST , role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: "%sylius.security.new_api_shop_regex%/.*", role: ROLE_USER }
- { path: "%sylius.security.api_shop_regex%/orders", method: POST, GET , role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: "%sylius.security.api_shop_regex%/orders/.*/items", method: POST , role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: "%sylius.security.api_shop_regex%/.*", role: ROLE_USER }
.. warning::
The "main" path (in this example ``"%sylius.security.new_api_shop_regex%/.*"`` ) should be at the very end of the configuration
The "main" path (in this example ``"%sylius.security.api_shop_regex%/.*"`` ) should be at the very end of the configuration
with the same route, otherwise this would not work.
Now when an anonymous user will try to use other checkout routes they will be informed that they are not authenticated:

View file

@ -22,7 +22,7 @@ The next step is to modify the security configuration in ``config/packages/secur
.. code-block:: yaml
parameters:
sylius.security.new_api_shop_route: "%sylius.security.new_api_route%/retail"
sylius.security.api_shop_route: "%sylius.security.api_route%/retail"
.. warning::

View file

@ -35,14 +35,14 @@
<service id="sylius.behat.client.admin_api_platform_security_client" class="Sylius\Behat\Client\ApiPlatformSecurityClient">
<argument type="service" id="test.client" />
<argument type="service" id="sylius.behat.shared_storage" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<argument>admin/administrators/token</argument>
</service>
<service id="sylius.behat.client.shop_api_platform_security_client" class="Sylius\Behat\Client\ApiPlatformSecurityClient">
<argument type="service" id="test.client" />
<argument type="service" id="sylius.behat.shared_storage" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<argument>shop/customers/token</argument>
</service>
@ -50,7 +50,7 @@
<service id="sylius.behat.request_factory" class="Sylius\Behat\Client\RequestFactory">
<argument type="service" id="sylius.behat.content_type_guide"/>
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
</services>
</container>

View file

@ -86,7 +86,7 @@
<argument type="service" id="sylius.behat.api_platform_client.admin" />
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument type="service" id="sylius.behat.shared_storage" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.admin.managing_locales" class="Sylius\Behat\Context\Api\Admin\ManagingLocalesContext">
@ -134,7 +134,7 @@
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument type="service" id="Sylius\Behat\Service\Converter\IriConverter" />
<argument type="service" id="sylius.behat.shared_storage" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.admin.managing_product_variants" class="Sylius\Behat\Context\Api\Admin\ManagingProductVariantsContext">
@ -190,7 +190,7 @@
<argument type="service" id="sylius.behat.api_platform_client.admin" />
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument type="service" id="api_platform.symfony.iri_converter" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.admin.managing_shipments" class="Sylius\Behat\Context\Api\Admin\ManagingShipmentsContext">
@ -198,7 +198,7 @@
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument type="service" id="Sylius\Behat\Service\Converter\IriConverter" />
<argument type="service" id="sylius.behat.shared_storage" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.admin.managing_orders" class="Sylius\Behat\Context\Api\Admin\ManagingOrdersContext">
@ -257,7 +257,7 @@
<argument type="service" id="sylius.behat.api_platform_client.shop" />
<argument type="service" id="sylius.behat.request_factory" />
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.admin.channel_pricing_log_entry" class="Sylius\Behat\Context\Api\Admin\ChannelPricingLogEntryContext">

View file

@ -29,7 +29,7 @@
<argument type="service" id="sylius.behat.api_platform_client.shop" />
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument type="service" id="sylius.behat.shared_storage" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.shop.currency" class="Sylius\Behat\Context\Api\Shop\CurrencyContext">
@ -46,7 +46,7 @@
<argument type="service" id="sylius.resolver.product_variant" />
<argument type="service" id="api_platform.iri_converter" />
<argument type="service" id="sylius.behat.request_factory" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.shop.customer" class="Sylius\Behat\Context\Api\Shop\CustomerContext">
@ -57,7 +57,7 @@
<argument type="service" id="sylius.behat.context.api.shop.login" />
<argument type="service" id="sylius.behat.context.setup.shop_api_security" />
<argument type="service" id="sylius.behat.request_factory" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.shop.exchange_rate" class="Sylius\Behat\Context\Api\Shop\ExchangeRateContext">
@ -90,7 +90,7 @@
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument type="service" id="api_platform.iri_converter" />
<argument type="service" id="doctrine.orm.entity_manager" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.shop.login" class="Sylius\Behat\Context\Api\Shop\LoginContext">
@ -101,7 +101,7 @@
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument type="service" id="sylius.behat.shared_storage" />
<argument type="service" id="sylius.behat.request_factory" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.shop.product" class="Sylius\Behat\Context\Api\Shop\ProductContext">
@ -112,7 +112,7 @@
<argument type="service" id="sylius.behat.channel_context_setter" />
<argument type="service" id="sylius.behat.request_factory" />
<argument type="service" id="doctrine.orm.entity_manager" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.shop.product_attribute" class="Sylius\Behat\Context\Api\Shop\ProductAttributeContext">
@ -141,7 +141,7 @@
<argument type="service" id="sylius.behat.shared_storage" />
<argument type="service" id="Sylius\Behat\Client\ResponseCheckerInterface" />
<argument type="service" id="sylius.behat.request_factory" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.shop.order" class="Sylius\Behat\Context\Api\Shop\OrderContext">
@ -152,7 +152,7 @@
<argument type="service" id="api_platform.iri_converter" />
<argument type="service" id="sylius.behat.api_security" />
<argument type="service" id="sylius.behat.request_factory" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="sylius.behat.context.api.shop.order_item" class="Sylius\Behat\Context\Api\Shop\OrderItemContext">

View file

@ -9,6 +9,16 @@ parameters:
- "sylius_api_shop_order_payment_get_configuration"
- "sylius_api_shop_order_payment_patch"
- "sylius_api_shop_order_payment_patch_account"
sylius.security.api_route: "%sylius.security.new_api_route%"
sylius.security.api_regex: "%sylius.security.new_api_regex%"
sylius.security.api_admin_route: "%sylius.security.new_api_admin_route%"
sylius.security.api_admin_regex: "%sylius.security.new_api_admin_regex%"
sylius.security.api_shop_route: "%sylius.security.new_api_shop_route%"
sylius.security.api_shop_regex: "%sylius.security.new_api_shop_regex%"
sylius.security.api_shop_account_route: "%sylius.security.new_api_user_account_route%"
sylius.security.api_shop_account_regex: "%sylius.security.new_api_user_account_regex%"
# Below parameters are deprecated since Sylius 1.14 and will be removed in 2.0.
sylius.security.new_api_route: "/api/v2"
sylius.security.new_api_regex: "^%sylius.security.new_api_route%"
sylius.security.new_api_admin_route: "%sylius.security.new_api_route%/admin"

View file

@ -29,7 +29,7 @@
</service>
<service id="Sylius\Bundle\ApiBundle\OpenApi\Documentation\AdministratorDocumentationModifier">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<tag name="sylius.open_api.modifier" />
</service>
@ -48,12 +48,12 @@
</service>
<service id="Sylius\Bundle\ApiBundle\OpenApi\Documentation\ProductReviewDocumentationModifier">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<tag name="sylius.open_api.modifier" />
</service>
<service id="Sylius\Bundle\ApiBundle\OpenApi\Documentation\ProductSlugDocumentationModifier">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<tag name="sylius.open_api.modifier" />
</service>
@ -62,26 +62,26 @@
</service>
<service id="Sylius\Bundle\ApiBundle\OpenApi\Documentation\ShippingMethodDocumentationModifier">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<argument>%sylius.shipping_method_rules%</argument>
<argument>%sylius.shipping_calculators%</argument>
<tag name="sylius.open_api.modifier" />
</service>
<service id="Sylius\Bundle\ApiBundle\OpenApi\Documentation\CustomerDocumentationModifier">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<tag name="sylius.open_api.modifier" />
</service>
<service id="Sylius\Bundle\ApiBundle\OpenApi\Documentation\StatisticsDocumentationModifier">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<argument type="service" id="clock" />
<argument>%sylius_core.orders_statistics.intervals_map%</argument>
<tag name="sylius.open_api.modifier" />
</service>
<service id="Sylius\Bundle\ApiBundle\OpenApi\Documentation\PromotionDocumentationModifier">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<argument>%sylius.promotion_actions%</argument>
<argument>%sylius.promotion_rules%</argument>
<tag name="sylius.open_api.modifier" />
@ -98,7 +98,7 @@
</service>
<service id="Sylius\Bundle\ApiBundle\OpenApi\Documentation\OrderAdjustmentsTypeDocumentationModifier">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<argument>%sylius.model.adjustment.class%</argument>
<tag name="sylius.open_api.modifier" />
</service>

View file

@ -25,7 +25,7 @@
<service id="Sylius\Bundle\ApiBundle\Context\TokenValueBasedCartContext">
<argument type="service" id="request_stack" />
<argument type="service" id="sylius.repository.order" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<tag name="sylius.context.cart" priority="-333" />
</service>
</services>

View file

@ -30,7 +30,7 @@
<service id="Sylius\Bundle\ApiBundle\EventSubscriber\KernelRequestEventSubscriber">
<argument>%sylius_api.enabled%</argument>
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<tag name="kernel.event_subscriber" />
</service>

View file

@ -25,7 +25,7 @@
<defaults public="true" />
<service id="Sylius\Bundle\ApiBundle\Provider\PathPrefixProviderInterface" class="Sylius\Bundle\ApiBundle\Provider\PathPrefixProvider">
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
<argument>%sylius.api_path_prefixes%</argument>
</service>

View file

@ -40,7 +40,7 @@
<service id="Sylius\Bundle\ApiBundle\Serializer\HydraErrorNormalizer" decorates="api_platform.hydra.normalizer.error">
<argument type="service" id="Sylius\Bundle\ApiBundle\Serializer\HydraErrorNormalizer.inner" />
<argument type="service" id="request_stack" />
<argument>%sylius.security.new_api_route%</argument>
<argument>%sylius.security.api_route%</argument>
</service>
<service id="Sylius\Bundle\ApiBundle\Serializer\ProductNormalizer">

View file

@ -1,3 +1,3 @@
sylius_api:
resource: "@SyliusApiBundle/Resources/config/routing.yml"
prefix: "%sylius.security.new_api_route%"
prefix: "%sylius.security.api_route%"

View file

@ -10,11 +10,11 @@ security:
firewalls:
new_api_admin_user:
pattern: "%sylius.security.new_api_admin_regex%/.*"
pattern: "%sylius.security.api_admin_regex%/.*"
provider: sylius_api_admin_user_provider
stateless: true
json_login:
check_path: "%sylius.security.new_api_admin_route%/authentication-token"
check_path: "%sylius.security.api_admin_route%/authentication-token"
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
@ -22,11 +22,11 @@ security:
jwt: ~
new_api_shop_user:
pattern: "%sylius.security.new_api_shop_regex%/.*"
pattern: "%sylius.security.api_shop_regex%/.*"
provider: sylius_api_shop_user_provider
stateless: true
json_login:
check_path: "%sylius.security.new_api_shop_route%/authentication-token"
check_path: "%sylius.security.api_shop_route%/authentication-token"
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
@ -38,8 +38,8 @@ security:
security: false
access_control:
- { path: "%sylius.security.new_api_admin_regex%/.*", role: ROLE_API_ACCESS }
- { path: "%sylius.security.new_api_admin_route%/authentication-token", role: PUBLIC_ACCESS }
- { path: "%sylius.security.new_api_user_account_regex%/.*", role: ROLE_USER }
- { path: "%sylius.security.new_api_shop_route%/authentication-token", role: PUBLIC_ACCESS }
- { path: "%sylius.security.new_api_shop_regex%/.*", role: PUBLIC_ACCESS }
- { path: "%sylius.security.api_admin_regex%/.*", role: ROLE_API_ACCESS }
- { path: "%sylius.security.api_admin_route%/authentication-token", role: PUBLIC_ACCESS }
- { path: "%sylius.security.api_shop_account_regex%/.*", role: ROLE_USER }
- { path: "%sylius.security.api_shop_route%/authentication-token", role: PUBLIC_ACCESS }
- { path: "%sylius.security.api_shop_regex%/.*", role: PUBLIC_ACCESS }