У меня возникла проблема с пользовательской последовательностью посредничества WSO2.
Цель последовательности - отфильтровать JSON ответ API в зависимости от приложения вызывающей стороны.
Я использую посредник сценариев для загрузки JavaScript и включенного динамического c сценария с именем приложения вызывающей стороны.
Динамический c сценарий загружается с свойство, которое устанавливается с помощью выражения $ctx:api.ut.application.name
.
Когда конечная точка вызывается одновременно двумя различными приложениями (назовем их app1 и app2), включенный сценарий может быть неправильным (app2 вызывает и для свойства установлено значение app1).
Является ли выражение $ctx:api.ut.application.name
поточно-ориентированным?
Или свойство appli_rgpd использует неверную область действия?
Я запускаю версию 2.6.0 из WSO2.
<sequence xmlns="http://ws.apache.org/ns/synapse" name="filterRGPDPartnerSequence">
<property name="JSONPayload" expression="json-eval($.)" />
<property name="appli_rgpd" expression="$ctx:api.ut.application.name"/>
<property name="keyDestination" expression="'repository/scripts/filterPartner'" scope="default" type="STRING"/>
<property name="dynamicKeyDestination" expression="fn:concat('repository/scripts/', get-property('appli_rgpd'))" scope="default" type="STRING"/>
<script language="js" key="{get-property('keyDestination')}" function="transform">
<include key="{get-property('dynamicKeyDestination')}"/>
</script>
</sequence>