WSO2 ESB获取序列中的租户名称属性
我正在使用WSO2 ESB在将消息发送到外部消息代理之前对其进行处理。WSO2 ESB获取序列中的租户名称属性,wso2,wso2esb,Wso2,Wso2esb,我正在使用WSO2 ESB在将消息发送到外部消息代理之前对其进行处理。 我想根据租户名称命名目标队列。但是,如何获取租户名称?实际上,您无法直接获取租户名称,因为根据代码,我们没有在消息上下文中将租户域作为单个属性传递。但是您可以在包含axis2消息上下文的“TransportInURL”属性中找到此租户名称。“TransportInURL”属性值已形成如下所示 TransportInURL:/t/tenant\u域或tenant\u名称/api上下文部分 例如:/t/wso2.com/abc
我想根据租户名称命名目标队列。但是,如何获取租户名称?实际上,您无法直接获取租户名称,因为根据代码,我们没有在消息上下文中将租户域作为单个属性传递。但是您可以在包含axis2消息上下文的“TransportInURL”属性中找到此租户名称。“TransportInURL”属性值已形成如下所示
- TransportInURL:/t/tenant\u域或tenant\u名称/api上下文部分
- 例如:/t/wso2.com/abc/v1
例如:
- 输入:/t/wso2.com/abc/v1
- 结果:wso2.com
<api xmlns="http://ws.apache.org/ns/synapse" name="ABC" context="/t/wso2.com/abc" version="v1" version-type="context">
<resource methods="GET">
<inSequence>
<property name="tenant" expression="fn:substring-before(fn:substring-after($axis2:TransportInURL, '/t/'), '/')"/>
<log level="full">
<property name="tenantValue" expression="get-property('tenant')"/>
</log>
<send>
<endpoint>
<http uri-template="http://www.mocky.io/v2/5c985f352f000064009f2f91"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</resource>
</api>
我知道WSO2的管理管理服务中有一种“getTenant”方法,但不确定Integrator是否有这种方法。另一种方法是在注册表中为每个租户创建一个小文件,在其中输入租户名称并在代理中检索该名称。是的,我将尝试使用它。顺便说一句因为传入的请求包含租户作为/t/tenant.org/request,所以我正在尝试将其从中删除请求是通过API传入的?您可能可以将上下文定义为“/t”,并定义uri模板类型的资源,并使用/{tenant_name}/request。然后,租户将在'uri.var.tenant\u name'propertyGreat Jan'中可用,但是我发现当您将工件部署到不同的租户上下文中时,前缀/t/tenant现在被追加为默认值。所以,如果我从/t/tenant开始定义URI模板,它将复制租户