LDAP request definition examples
Definitions for each of the LDAP requests are split between the toolkit data definition file and the toolkit formats definition file.
Example data:
Given the following general data definitions in the data definition file:
<field id="firstName"/>
<field id="lastName"/>
<field id="middleInitial"/>
<field id="fullName"/>
<field id="salutation"/>
<field id="street"/>
<field id="city"/>
<field id="country"/>
<field id="department"/>
<field id="organization"/>
<field id="userName"/>
<field id="password"/>
Following is a breakdown of the structure of the definitions for each request type.
LIST Request Example
<kColl id="listOpData">
<field id="bindName"/>
<field id="className"/>
</kColl>
<fmtDef id="listOpReqFmt">
<ldapRequest requestType="list">
<map id="dynamicName source="listOpCtx"
target="ldapInCtx" targetPrefix="dynamicName">
<mapping source="nil" target="o" value="ibm"/>
<mapping source="nil" target="c" value="us"/>
</map>
</ldapRequest>
</fmtDef>
<fmtDef id="listOpResFmt">
<ldapResponse responseType="list">
<map source="ldapOutCtx" target="listOpCtx">
<mapping source="listResults.0.name"
target="bindName"/>
<mapping source="listResults.0.classname"
target="className"/>
</map>
</ldapResponse>
</fmtDef>
LISTBINDINGS Request Example
<kColl id="listBindingsOpData">
<field id="bindName"/>
<field id="className"/>
<field id="object"/>
</kColl>
<fmtDef id="listBindingsOpReqFmt">
<ldapRequest requestType="listbindings">
<map id="dynamicName" source="listBindingsOpCtx"
target="ldapInCtx" targetPrefix="dynamicName">
<mapping source="nil" target="o" value="ibm"/>
<mapping source="nil" target="c" value="us"/>
</map>
</ldapRequest>
</fmtDef>
<fmtDef id="listBindingsOpResFmt">
<ldapResponse responseType="listbindings">
<map source="ldapOutCtx" target="listBindingsOpCtx">
<mapping source="listBindingsResults.0.name"
target="bindName"/>
<mapping source="listBindingsResults.0.classname"
target="className"/>
<mapping source="listBindingsResults.0.object"
target="object"/>
</map>
<ldapResponse>
</fmtDef>
LOOKUP Request Example
<kColl id="lookupOpData">
<field id="object"/>
<refData refId="fullName"/>
<refData refId="firstName"/>
<refData refId="lastName"/>
<refData refId="organization"/>
</kColl>
<fmtDef id="lookupOpReqFmt">
<ldapRequest requestType="lookup">
<map id="dynamicName" source="lookupOpCtx"
target="ldapInCtx" targetPrefix="dynamicName">
<mapping source="fullName" target="cn"/>
<mapping source="organization" target="ou"/>
<mapping source="nil" target="o" value="ibm"/>
<mapping source="nil" target="c" value="us"/>
</map>
</ldapRequest>
</fmtDef>
<fmtDef id="lookupOpResFmt">
<ldapResponse responseType="lookup">
<map source="ldapOutCtx" target="lookupOpCtx"
sourcePrefix="lookupResults">
<mapping source="object" target="object"/>
</map>
</ldapResponse>
</fmtDef>
SEARCH Request Example
<kColl id="searchOpData">
<field id="objType" value="organizationalPerson"/>
<refData refId="fullName"/>
<refData refId="firstName"/>
<refData refId="lastName"/>
<refData refID="userName"/>
<field id="bindName"/>
<field id="className"/>
<field id="object"/>
<field id="organization"/>
<kColl id="attributeFilterList" dynamic="true">
<field id="cn"/>
<field id="sn"/>
<field id="postalAddress"/>
<field id="ou"/>
<field id="c"/>
</kColl>
<field id="filterExpression"
value="(&(objectclass={0})(cn={1}))"/>
</kColl>
<fmtDef id="searchOpReqFmt">
<ldapRequest requestType="search" filterType="expression">
<map id="dynamicName" source="searchOpCtx"
target="ldapInCtx" targetPrefix="dynamicName">
<mapping source="nil" target="o" value="ibm"/>
<mapping source="nil" target="c" value="us"/>
</map>
<map id="filterList" source="searchOpCtx
target="ldapInCtx">
<mapping source="objType" target="filterList.0"
value="organizationalPerson"/>
<mapping source="fullName" target="filterList.1"/>
</map>
</ldapRequest>
</fmtDef>
<fmtDef id="searchOpResFmt">
<ldapResponse responseType="search">
<map source="ldapOutCtx" target="searchOpCtx">
<mapping source="searchResults.0.bindName"
target="bindName"/>
<mapping source="searchResults.0.className"
target="className"/>
<mapping source="searchResults.0.object"
target="object"/>
<mapping source="searchResults.0.ou"
target="organization"/>
<mapping source="searchResults.0.postalAddress"
target="address"/>
</map>
</ldapResponse>
</fmtDef>
CREATE Request Example
<kColl id="createOpData">
<refData refId="fullName"/>
<refData refId="firstName"/>
<refData refId="lastName"/>
<refData refID="organization"/>
<refData refId="street"/>
<refData refId="address"/>
<refData refId="password"/>
</kColl>
<fmtDef id="createOpReqFmt">
<ldapRequest requestType="create">
<map id="dynamicName" source="createOpCtx"
target="ldapInCtx" targetPrefix="dynamicName">
<mapping source="fullName" target="cn"/>
<mapping source="organization" target="ou"/>
<mapping source="nil" target="o" value="ibm"/>
<mapping source="nil" target="c" value="us"/>
</map>
<map id="attributes" source="createOpCtx"
target="ldapInCtx" targetPrefix="attributeList">
<mapping source="street" target="street"/>
<mapping source="address" target="postalAddress"/>
<mapping source="password" target="userPassword"/>
<mapping source="nil" target="objectclass" value="organizationalPerson"/>
</map>
</ldapRequest>
</fmtDef>
DESTROY Request Example
<kColl id="destroyOpData">
<refData refId="fullName"/>
<refData refId="firstName"/>
<refData refId="lastName"/>
<refData refID="organization"/>
</kColl>
<fmtDef id="destroyOpReqFmt">
<ldapRequest requestType="destroy">
<map id="dynamicName" source="destroyOpCtx"
target="ldapInCtx" targetPrefix="dynamicName">
<mapping source="fullName" target="cn"/>
<mapping source="organization" target="ou"/>
<mapping source="nil" target="o" value="ibm"/>
<mapping source="nil" target="c" value="us"/>
</map>
</ldapRequest>
</fmtDef>
MODIFY Request Example
<kColl id="modifyOpData">
<refData refId="fullName"/>
<refData refId="firstName"/>
<refData refId="lastName"/>
<refData refID="organization"/>
<refData refID="password"/>
</kColl>
<fmtDef id="modifyOpReqFmt">
<ldapRequest requestType="modify">
<map id="dynamicName" source="modifyOpCtx"
target="ldapInCtx" targetPrefix="dynamicName">
<mapping source="fullName" target="cn"/>
<mapping source="organization" target="ou"/>
<mapping source="nil" target="o" value="ibm"/>
<mapping source="nil" target="c" value="us"/>
</map>
<map id="modificationList" source="modifyOpCtx"
target="ldapInCtx" targetPrefix="modificationList"/>
<mod source="password" target="userPassword"
modcode="replace"/>
</map>
</ldapRequest>
</fmtDef>
GETATTRIBUTES Request Example
<kColl id="getAttributesOpData">
<refData refId="fullName"/>
<refData refId="firstName"/>
<refData refId="lastName"/>
<refData refId="organization"/>
<refData refId="password"/>
<kColl id="attributeFilterList" dynamic="true>
<field id="cn"/>
<field id="sn"/>
<field id="ou"/>
<field id="userPassword"/>
</kColl>
</kColl>
<fmtDef id="getAttributesOpReqFmt">
<ldapRequest requestType="getattributes">
<map id="dynamicName" source="getAttributesOpCtx"
target="ldapInCtx" targetPrefix="dynamicName">
<mapping source="fullName" target="cn"/>
<mapping source="organization" target="ou"/>
<mapping source="organization" target="ou"/>
<mapping source="nil" target="c" value="us"/>
</map>
</ldapRequest>
</fmtDef>
<fmtDef id="getAttributesOpResFmt">
<ldapResponse responseType="getattributes">
<map source="ldapOutCtx" target="getAttributesOpCtx"
sourcePrefix="getAttributeResults">
<mapping source="ou" target="organization"/>
<mapping source="userPassword" target="password"/>
</map>
</ldapResponse>
</fmtDef>
See also