LDAP wso2 esb 中的 SearhEntry 操作

SearhEntry operation in LDAP wso2 esb

我正在尝试在 wso2 esb 的 LDAP 中使用 searchEntry 操作来搜索特定的 emailid。我将如何为此创建请求负载?您能否为此举一个示例。任何帮助将不胜感激。 提前致谢

能否请您尝试使用以下示例代理进行上述操作 (searchEntry): 在这里,我们使用负载工厂中介为代理内部的 searchEntry 操作构建了请求负载。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="ldap_search_payload"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="https,http">
   <target>
      <inSequence>
         <payloadFactory media-type="json">
            <format>
            {
              "providerUrl": "ldap://XYZ.example.com:389/",
              "securityPrincipal": "cn=admin,dc=example,dc=com",
              "securityCredentials": "password",
              "secureConnection": "",
              "disableSSLCertificateChecking": "false",
             "dn": "ou=People,dc=example,dc=com",
             "objectClass": "inetOrgPerson",
             "attributes": "uid",
             "filters": {
                "mail": "testDim2@wso2.com"
              },
            "onlyOneReference": "false"
 }
       </format>
            <args/>
         </payloadFactory>
         <property expression="json-eval($.objectClass)" name="objectClass"/>
         <property expression="json-eval($.dn)" name="dn"/>
         <property expression="json-eval($.attributes)" name="attributes"/>
         <property expression="json-eval($.onlyOneReference)" name="onlyOneReference"/>
         <property expression="json-eval($.providerUrl)" name="providerUrl"/>
         <property expression="json-eval($.securityPrincipal)" name="securityPrincipal"/>
         <property expression="json-eval($.securityCredentials)"
                   name="securityCredentials"/>
         <property expression="json-eval($.filters)" name="filters"/>
         <property name="messageType" scope="axis2" value="application/json"/>
         <property name="ContentType" scope="axis2" value="application/json"/>
         <ldap.init>
            <providerUrl>{$ctx:providerUrl}</providerUrl>
            <securityPrincipal>{$ctx:securityPrincipal}</securityPrincipal>
            <securityCredentials>{$ctx:securityCredentials}</securityCredentials>
            <secureConnection>{$ctx:secureConnection}</secureConnection>
            <disableSSLCertificateChecking>{$ctx:disableSSLCertificateChecking}</disableSSLCertificateChecking>
         </ldap.init>
         <ldap.searchEntry>
            <objectClass>{get-property('objectClass')}</objectClass>
            <dn>{get-property('dn')}</dn>
            <attributes>{get-property('attributes')}</attributes>
            <filters>{get-property('filters')}</filters>
            <onlyOneReference>{get-property('onlyOneReference')}</onlyOneReference>
         </ldap.searchEntry>
         <respond/>
      </inSequence>
      <faultSequence>
         <respond/>
      </faultSequence>
   </target>
   <description/>
</proxy>

请在调用上述代理时查找响应

{
    "result": {
        "entry": [
            {
                "dn": "uid=john_002,ou=People,dc=example,dc=com",
                "uid": "john_002"
            },
            {
                "dn": "uid=john_003,ou=People,dc=example,dc=com",
                "uid": "john_003"
            }
        ]
    }
}  

在此示例中,我得到了相关的搜索条目,这些条目的电子邮件 ID "testDim2@wso2.com" 以及该电子邮件 ID 用户在响应中的 "uid" 属性。

我通过设置以下匿名连接到 ldap 的参数使其工作。

"securityPrincipal":"",
   "securityCredentials":"",
   "secureConnection":"true",
   "disableSSLCertificateChecking":"true",