Validation apigee SOAP验证

Validation apigee SOAP验证,validation,soap,apigee,Validation,Soap,Apigee,我想通过针对WSDL文件的Apigee soap消息验证来验证包装在MTOM中的soap请求 当我提交带有标题的请求时 内容类型:多部分/相关;type=“应用程序/xop+xml”;start=“”;边界=“uuid:4fa9f99a-7f53-4ac6-84ff-05655e9af89c+id=22”;start info=“text/xml” 验证策略似乎只是传递/不触发。我把假信息放进信封里,但没有失败。我看过一篇文章,其中有人提到为了触发SOAP验证策略,头部必须指定内容类型:“app

我想通过针对WSDL文件的Apigee soap消息验证来验证包装在MTOM中的soap请求

当我提交带有标题的请求时

内容类型:多部分/相关;type=“应用程序/xop+xml”;start=“”;边界=“uuid:4fa9f99a-7f53-4ac6-84ff-05655e9af89c+id=22”;start info=“text/xml”

验证策略似乎只是传递/不触发。我把假信息放进信封里,但没有失败。我看过一篇文章,其中有人提到为了触发SOAP验证策略,头部必须指定内容类型:“application/xml”。如果我这样做,那么MTOM包装会导致问题,因为请求主体不是纯XML:

例如,MTOM包装器: --uuid:4fa9f99a-7f53-4ac6-84ff-05655e9af89c+id=22 内容ID: 内容传输编码:8比特 内容类型:应用程序/xop+xml;字符集=utf-8;type=“text/xml”

因此,问这个问题的冗长(抱歉)方式是:如果APIGEE需要纯XML,并且我有MTOM包装器,那么我如何在APIGEE中使用SOAP消息验证策略

附带说明,我尝试将SOAP消息/信封本身提取到一个变量(bodyvar)中,并将策略源定义为该变量,但APIGEE抱怨该变量没有解析为消息:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageValidation async="false" continueOnError="false" enabled="true" name="WSDL_VALIDATION">
    <DisplayName>WSDL_VALIDATION</DisplayName>
    <FaultRules/>
    <Properties/>
    <SOAPMessage />
  <Element namespace="http://schemas.xmlsoap.org/soap/envelope/">Body</Element>
    <Source>bodyvar</Source>
    <ResourceURL>wsdl://FormRequest.wsdl</ResourceURL>
</MessageValidation>

WSDL\u验证
身体
博迪瓦尔
wsdl://FormRequest.wsdl
运行此命令时会出现以下错误:
{“fault”:{“faultstring”:“Variable env未解析为消息”,“detail”:{“errorcode”:“steps.messagevalidation.NonMessageVariable”}}}

是的,soap消息验证仅在内容类型为application/xml时有效。我猜您需要将内容类型设置为上述值,以便后端能够理解它。因此,我的建议是: -从客户端发送消息时,将其作为application/xml发送 -验证soap消息后,可以使用assign message或javascript策略将内容类型头设置为所需的值,然后再将其发送到目标

希望这种方法对您有效