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)