OPLON LBL ADC 重写一个 http body 以清除 xml 内容之前的值

OPLON LBL ADC rewrite an http body to clean a value before xml content

在 HTTP 正文、请求和响应中,当通过 LBL ADC 反向代理时,我需要清理正文开头的非 xml 部分。

要清除的值是 XMLDATA= 例如:

重写前 HTTP 正文中的值:

XMLDATA=<myXmlData> ....
...
...
</myXmlData>

在 HTTP 正文中重写正文后的预期值:

<myXmlData> ....
...
...
</myXmlData>

提前致谢。

您可以使用 OPLON LBL ADC body 重写规则,该规则使用正则表达式来清除 body 响应的第一部分。 OPLON LBL ADC 是一个完整的反向代理,您可以检查或修改 REQUEST 和 RESPONSE,HEADER 和 BODY.

在这种情况下,当正则表达式规则与起始字符串 XMLDATA= 匹配时,规则将替换所有其他 body 数据中的内容,但起始匹配项除外。

<rewriteBodyRule name="cleanXmlContents" flow="BOTH">
    <mimeType value="application/xml" fragmentClose="&gt;" fragmentOpen="&lt;"/>
    <regexTag>^XMLDATA\=(.*)</regexTag>
    <replaceTo></replaceTo>
</rewriteBodyRule>

切记!如果 HTTP body 已被端点(app/web 服务器压缩),您需要禁用该请求的压缩以重写 body。 OPLON LBL ADC 重写后压缩一个数据body给你...

您有两种禁用压缩的方法:
1) 在 app/web 服务器
中禁用压缩 2) 通过 OPLON LBL ADC 在 REQUEST HTTP header 中使用重写 HEADER 规则禁用压缩。

对于情况 (2),您可以在 OPLON LBL ADC 中使用模板规则。