<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:ldap="http://www.mulesoft.org/schema/mule/ldap"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ldap
http://www.mulesoft.org/schema/mule/ldap/current/mule-ldap.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<http:listener-config name="HTTP_Listener_config"
doc:name="HTTP Listener config">
<http:listener-connection host="127.0.0.1"
port="8081" />
</http:listener-config>
<ldap:config name="LDAP_Configuration" doc:name="LDAP Configuration">
<ldap:basic-connection authDn="${config.principal.dn}"
authPassword="${config.password}" url="${config.url}">
<ldap:extended-configurations>
<ldap:extended-configuration key="key.name" value="key.value" />
</ldap:extended-configuration>
</ldap:extended-configurations>
</ldap:basic-connection>
</ldap:config>
<flow name="ldap-add-entry-flow">
<http:listener config-ref="HTTP_Listener_config" path="/"
doc:name="HTTP" />
<ee:transform doc:name="DataWeave to Create DevOps Group Object">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/java
---
{
dn : "ou=DevOpsGroup," ++ attributes.queryParams.dn,
ou : "DevOpsGroup",
objectclass : ["top", "organizationalUnit"]
}
]]></ee:set-payload>
</ee:message>
</ee:transform>
<ldap:add config-ref="LDAP_Configuration"
doc:name="Add Group Entry to LDAP Directory" />
<ee:transform doc:name="DataWeave to Create User Object">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/java
---
{
dn : "cn=Test User,ou=DevOpsGroup," ++ attributes.queryParams.dn,
uid : "testUser",
cn : "Test User",
sn : "User",
userPassword : "test1234",
objectclass : ["top", "person", "organizationalPerson", "inetOrgPerson"]
}
]]></ee:set-payload>
</ee:message>
</ee:transform>
<ldap:add config-ref="LDAP_Configuration"
doc:name="Add User Entry to LDAP Directory" />
<ldap:delete config-ref="LDAP_Configuration"
dn="#['cn=Test User,ou=DevOpsGroup,' ++ attributes.queryParams.dn]"
doc:name="Delete User Entry from LDAP Directory" />
<ldap:delete config-ref="LDAP_Configuration"
dn="#['ou=DevOpsGroup,' ++ attributes.queryParams.dn]"
doc:name="Delete Group Entry from LDAP Directory" />
<ee:transform doc:name="DataWeave to set Payload indicating flow completed">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
{
result : "Flow Successfully Completed"
}
]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
</mule>