You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Adam Ostrožlík (Jira)" <ji...@apache.org> on 2021/11/26 07:42:00 UTC
[jira] [Commented] (CAMEL-17234) camel-ldap - LDAP bad parsing of '=' in base parameter
[ https://issues.apache.org/jira/browse/CAMEL-17234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17449428#comment-17449428 ]
Adam Ostrožlík commented on CAMEL-17234:
----------------------------------------
I have tried hardcoded version:
{code:java}
.to("ldap:gateLdapDirContext?base=dc=cpost,dc=cz") {code}
Exception is still the same but I can now see no king of escaping '=' sign:
{code:java}
[route2 ] [to10 ] [ldap:gateLdapDirContext?base=dc=cpost,dc=cz ] [ 0] {code}
So it looks like EndpointDsl thing with that character escaping but it may not be the cause.
I am using docker container:
{code:java}
openldap:
image: osixia/openldap:${OPENLDAP_TAG}
ports:
- ${OPENLDAP_PORT_1}:${OPENLDAP_PORT_1}
- ${OPENLDAP_PORT_2}:${OPENLDAP_PORT_2}
env_file: .env.openldap
volumes:
- "OpenLDAPData:/var/lib/ldap:rw"
- "OpenLDAPConfigs:/etc/ldap/slapd.d:rw" {code}
{code:java}
# .env.openldap
LDAP_ORGANISATION="Česká pošta"
LDAP_DOMAIN=cpost.cz
LDAP_ADMIN_PASSWORD=password
# .env
OPENLDAP_TAG=latest
OPENLDAP_PORT_1=389
OPENLDAP_PORT_2=636{code}
DirContext:
{code:java}
@Bean
DirContext gateLdapDirContext(GateProperties gateProperties) {
var ldapConfig = gateProperties.getLdap();
return new InitialLdapContext(new Hashtable<>(Map.of(
Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory",
Context.PROVIDER_URL, ldapConfig.getProviderUrl(),
Context.URL_PKG_PREFIXES, "com.sun.jndi.url",
Context.REFERRAL, "ignore",
Context.SECURITY_AUTHENTICATION, "simple",
Context.SECURITY_PRINCIPAL, ldapConfig.getPrincipalDn(),
Context.SECURITY_CREDENTIALS, ldapConfig.getPassword()
)), null);
} {code}
Full properties:
{code:java}
gate:
ldap:
provider-url: ldap://localhost:389
base-dn: dc=cpost,dc=cz
principal-dn: cn=admin,${gate.ldap.base-dn}
password: password {code}
> camel-ldap - LDAP bad parsing of '=' in base parameter
> ------------------------------------------------------
>
> Key: CAMEL-17234
> URL: https://issues.apache.org/jira/browse/CAMEL-17234
> Project: Camel
> Issue Type: Bug
> Components: camel-ldap
> Affects Versions: 3.12.0
> Reporter: Adam Ostrožlík
> Priority: Major
> Fix For: 3.14.0
>
>
> Simple route for ldap search:
> {code:java}
> // main route
> .wireTap(securityEndpoint)
> from(securityEndpoint)
> .to(ldap("gateLdapDirContext").base(gateProperties.getLdap().getBaseDn()));{code}
> application.yaml encoded in UTF-8
> {code:java}
> gate:
> ldap:
> base-dn: dc=cpost,dc=cz{code}
> Exception
> {code:java}
> Message History (complete message history is disabled)
> ---------------------------------------------------------------------------------------------------------------------------------------
> RouteId ProcessorId Processor Elapsed (ms)
> [gateMainRoute ] [gateMainRoute ] [from[direct://gateRouteEntryEndpoint] ] [ 5]
> ...
> [route1 ] [to4 ] [ldap://gateLdapDirContext?base=dc%3Dcpost%2Cdc%3Dcz ] [ 0]Stacktrace
> ---------------------------------------------------------------------------------------------------------------------------------------
> javax.naming.directory.InvalidSearchFilterException: Missing 'equals'
> at java.naming/com.sun.jndi.ldap.Filter.encodeSimpleFilter(Filter.java:312) ~[na:na]
> at java.naming/com.sun.jndi.ldap.Filter.encodeFilter(Filter.java:171) ~[na:na]
> at java.naming/com.sun.jndi.ldap.Filter.encodeFilterString(Filter.java:74) ~[na:na]
> at java.naming/com.sun.jndi.ldap.LdapClient.search(LdapClient.java:547) ~[na:na]
> at java.naming/com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:2014) ~[na:na]
> at java.naming/com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1873) ~[na:na]
> at java.naming/com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1798) ~[na:na]
> at java.naming/com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:392) ~[na:na]
> at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:358) ~[na:na]
> at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:341) ~[na:na]
> at java.naming/javax.naming.directory.InitialDirContext.search(InitialDirContext.java:296) ~[na:na]
> at org.apache.camel.component.ldap.LdapProducer.simpleSearch(LdapProducer.java:125) ~[camel-ldap-3.12.0.jar:3.12.0]
> at org.apache.camel.component.ldap.LdapProducer.process(LdapProducer.java:79) ~[camel-ldap-3.12.0.jar:3.12.0]
> at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66) ~[camel-support-3.12.0.jar:3.12.0]
> at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:172) ~[camel-core-processor-3.12.0.jar:3.12.0]
> at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:469) ~[camel-core-processor-3.12.0.jar:3.12.0]
> at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:179) ~[camel-base-engine-3.12.0.jar:3.12.0]
> at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:64) ~[camel-base-engine-3.12.0.jar:3.12.0]
> at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:216) ~[camel-core-processor-3.12.0.jar:3.12.0]
> at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:399) ~[camel-base-engine-3.12.0.jar:3.12.0]
> at org.apache.camel.processor.WireTapProcessor$WireTapTask.run(WireTapProcessor.java:126) ~[camel-core-processor-3.12.0.jar:3.12.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
> at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
> at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na] {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)