|
LDAP has been edited by Hadrian Zbarcea (Aug 27, 2008). Content:LDAP ComponentThe ldap: component allows you to perform searches in LDAP servers using filters as the message payload. URI formatldap:ldapServerUrl?options This component only supports producer, meaning that you can not use routes with this component in the from type.
ResultThe result is returned in the out body as a ArrayList<javax.naming.directory.SearchResult> list object with the result. SamplesIn the sample below we fetches the rows from the customer table. First we register our datasource in the Camel registry as testdb: JndiRegistry reg = super.createRegistry(); reg.bind("localhost:" + port, this.getWiredContext()); return reg; Then we configure a route that routes to the LDAP component so the search will be executed, notice that we refer to the LdapContext that was bound in the previous step: public void configure() throws Exception { from("direct:start").to("ldap:localhost:" + port + "?base=ou=system"); } And then we create the endpoint and sends the exchange containing the LDAP filter to execute in the in body. The result is returned in the out body. Endpoint endpoint = context.getEndpoint("direct:start"); Exchange exchange = endpoint.createExchange(); // then we set the SQL on the in body exchange.getIn().setBody("(!(ou=test1))"); // now we send the exchange to the endpoint, and receives the response from Camel Exchange out = template.send(endpoint, exchange); // assertions of the response assertNotNull(out); assertNotNull(out.getOut()); Collection<SearchResult> data = "" assertNotNull("out body could not be converted to a Collection - was: " + out.getOut().getBody(), data); assertFalse(contains("uid=test1,ou=test,ou=system", data)); assertTrue(contains("uid=test2,ou=test,ou=system", data)); assertTrue(contains("uid=testNoOU,ou=test,ou=system", data)); assertTrue(contains("uid=tcruise,ou=actors,ou=system", data)); } @Override protected JndiRegistry createRegistry() throws Exception { JndiRegistry reg = super.createRegistry(); reg.bind("localhost:" + port, this.getWiredContext()); return reg; } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() throws Exception { from("direct:start").to("ldap:localhost:" + port + "?base=ou=system"); } }; } } Sample - Polling the server every minuteIf we want to poll an LDAP server using this component we need to combine this with a polling scheduler such as the Timer or Quartz etc. from("timer://foo?period=60000").setBody(constant("(o=apache)")).to("ldap:localhost:1024").to("activemq:queue:committers");
See Also |
Unsubscribe or edit your notifications preferences
