验证来自WSO2 ESB的请求

时间:2016-02-24 16:57:35

标签: json wso2 wso2esb esb

来自外部源的请求到wso2 esb(版本4.8.0)有多个字段。作为验证的一部分,我们需要在处理请求之前验证wso2中的必填字段。请问任何人请告诉我在wso2中验证这些字段的方式和位置(文件)。

示例请求是:

{
    "name" : "abc",
    "studentId" : {
        "id1" : "testid",
        "id2" : "11234",
        "id3" : "6781"
    },

"details" : [
        {
            "dateOfBirth" : "01-01-2016"
}]

其中id1,id2,id3和dateOfBirth是必须在resresst来到wso2 esb时验证的字段。

1 个答案:

答案 0 :(得分:0)

您可以使用一些过滤器调解器来执行此操作。

由于JSON有效负载在ESB中被视为SOAP消息,因此您的请求有效负载可能是这样的,

 <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
     <jsonObject>
         <name>abc</name>
         <studentId>
            <id1>testid</id1>
            <id2>testid</id2>
            <id3>testid</id3>
         </studentId>
         <details>
            <dateOfBirth>01-01-2016</dateOfBirth>
         </details>
         <details>
            <dateOfBirth>01-01-2012</dateOfBirth>
         </details>
     </jsonObject>
 </soapenv:Body>

使用过滤介质如下所示验证请求中所需的键/值。

 <!-- xPath boolean() function may evaluate to false if value of id1 is empty/null or request doesn't have that key. --> 
 <filter regex="false" source="boolean(//jsonObject/studentId/id1)">
     <then>
     <!-- Generate Error message for id1-->
     </then>
     <else>
        <filter regex="false" source="boolean(//jsonObject/studentId/id2)">
            <then>
            <!-- Generate Error message for id2-->
            </then>
            <else>
                <!-- more filters -->
            </else>
        </filter>
     </else>
 </filter>