Las conexiones de tiendas minoristas son accesibles sólo por sus propios gestores de entornos comerciales de org

FixSecurityService
Se descapó
17 de septiembre de 2026 a las 4:26 UTC
Autor
Kamo
Compromit
6f51fa9

Los manejadores de retail-config en CommerceMarketController resolvieron el org de la sesión y luego usaron lo que sea mercado y configuración del camino nombrado. Actualización, supresión y los registros de sincronización aceptaron una sesión de cualquier organización; prueba-conexión y sincronización aceptada ninguna sesión en absoluto **************** permite una solicitud sin sesiones a través, y ambos manejadores ignoraron el org que resolvieron). Una conexión de tienda sostiene la clave de la API de la tienda, en secreto o el token y la conexión de prueba llama a la tienda almacenadaUrl con ellos, para que cualquiera que conociera el uid de una config podría volver a señalar su URL de la tienda en su propio servidor y tener el símbolo entregado allí, o activar sincronizaciones contra otra Tienda de inquilinos. Create también vinculó una configuración a cualquier identificación del mercado, incluyendo la de otra organización. Cada manejador (lista para un mercado, lista para el org, crear, actualizar, eliminar, sincronizar los registros, la conexión de prueba, sincronización) ahora corridas refuseRetailProviderAccess primero: - 401 sin sesión; - 403 sin MANAGE-SUBSCRIPTION-SETTINGS, la puerta de /settings/features/pos, la única pantalla que se lee o escribe estas conexiones (CommerceProviderSetup, su diálogo de configuración y panel de sincronización), y el nivel de lectura del hermano conexión de los proveedores de facturación en la misma página; - 404 a menos que el mercado pertenezca a la organización de la sesión ********************** y, cuando una configuración se llama, la configuración pertenece a esa organización y ese mercado. El mercado de otro inquilino o respuestas de configuración como una desapareciera. Los registros de sincronización ahora requieren configId; sin él la mirada era de una configuración NULL. RetailService and RetailSyncOrquestr viven en la biblioteca compartida de kamo y todavía se ven configs up by uid alone; the el control de propiedad funciona aquí, antes de que cualquiera de ellos sea llamado, y nada más en ningún servicio los llama con un uid de llamada (la ruta de boleto webhook resuelve su propia configuración y verifica el proveedor HMAC, cerrado por falla). Carteles mapeados: comercio interno kamo-internalProviderApi.ts solamente (los métodos de proveedor minorista decommerceApi.ts no tienen usuarios; sin móvil, kamo-js o llamantes de servicio). Cada llamada pasa el propio mercado de la configuración de su DTO y corre en el **************** página. MarketOverviewTab y la página de nuevo mercado también listan configs y capturas errores, por lo que un miembro sin derecho que llega a una página de mercado no ve proveedores vinculados en lugar de la lista. RetailProviderConfigAccessConccessConduzca a cada manejador: anónimo 401 y un miembro sin la derecha 403, ambos con nada tocado; otro mercado de org 404; otra configuración de org bajo el mercado 404 de este org y una configuración bajo el mercado equivocado 404, sin nada actualizado, borrado, probado, sincronizado o leído; el gestor ruta 200 en los ocho. Eliminar cada uno de los cinco cheques falla exactamente la prueba escrita para ello.

Todos los cambios

Como lo que ves enviaste?

Todo llega a su espacio de trabajo por sí solo. Comience en el plan gratuito y lea esta página de nuevo en un mes.

Arranzar gratis para siempreVer Precios