LDAP Serach Error - NotContextException | Community
Skip to main content
Level 3
November 2, 2016
Solved

LDAP Serach Error - NotContextException

  • November 2, 2016
  • 15 replies
  • 12508 views

Hi All,

We are upgarding from CQ5.6.1 to AEM 6.2. In the earlier version we had a code that search the content of Ldap using javax.naming.directory* classes.

Like the way

DirContext ctx = new InitialDirContext(env); //Creating context NamingEnumeration<SearchResult> ldapResults = ctx.search(base.get(), filter, sc); //Calling search method with arguments, this line throws Exception

When we are running the same code in AEM 6.2, getting the error.

javax.naming.NotContextException: Not an instance of DirContext at javax.naming.directory.InitialDirContext.getURLOrDefaultInitDirCtx(InitialDirContext.java:111) at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:267)

Any one faced this issue? The only difference I know is that in Cq5.6.1, we used to do the LDAP configs at server level, in AEm 6.2 they are available in OSGI configs.

Note:- We are defaining the LDAP enviornment varaibles in the Java class as well where we are getting the exception

Thanks

Monika

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Sham_HC

Hi Monika,

Osgi is an JNDI implementation does not interact well with factory DirContext or LdapContext for casting it back. You can find couple of issue in web on this with various osgi providers. To over come this make use of enhanced LDAP API which replaces JNDI and the existing LDAP API like "schema aware" API with convenient ways to access any LDAP server.

 

Thanks,

15 replies

Nitin_laad
Community Advisor
Community Advisor
July 8, 2019

Thanks Dinesh, was able to resolve dependency issue.

Same dependencies are available in OAK Ldap Authentication Support bundle, but not sure why required dependencies are not picked of from there.

Any thoughts ?

July 25, 2019

Hi All,

I'm still stuck at this point and the below mentioned pom snap is not working for me.

To summarize, I can import jar/package in eclipse and compile but the osgi dependency is not resolved. 

AEM 6.4

Nitin_laad
Community Advisor
Community Advisor
July 29, 2019

Hey Abhishek,

Below changes are working for me (below are core-pom changes), same needs to be there in apps pom with version info.

<dependency>

<groupId>org.codehaus.jackson</groupId>

<artifactId>jackson-mapper-asl</artifactId>

</dependency>

<dependency>

<groupId>org.apache.directory.api</groupId>

<artifactId>api-all</artifactId>

</dependency>

<dependency>

<groupId>commons-lang</groupId>

<artifactId>commons-lang</artifactId>

</dependency>

<dependency>

<groupId>commons-pool</groupId>

<artifactId>commons-pool</artifactId>

</dependency>

<dependency>

<groupId>org.apache.mina</groupId>

<artifactId>mina-core</artifactId>

</dependency>

<dependency>

<groupId>antlr</groupId>

<artifactId>antlr</artifactId>

</dependency>

-------------------

<Embed-Dependency>api-all;commons-pool;commons-lang;mina-core;antlr;scope=compile|runtime</Embed-Dependency>

<Import-Package>

!org.dom4j.*, !org.xmlpull.v1, !sun.net.util,

javax.inject;version=0.0.0,*

</Import-Package>

Thanks,

Regards,

Nitin

August 27, 2019

Hello Team,

I am facing same kind error  'javax.naming.NotContextException: Not an instance of DirContext' when trying to fetch users from group of LDAP in Java. I am deploying my code in AEM 6.4. Code is working when i am testing through main method in Local eclipse tool but when deploy on server using maven and test, it gives this kind of error. We are using DirContext.

Could you please assist me?

Thanks in  Advance,

Rahul

monikaa6Author
Level 3
August 28, 2019

Hi Rahul,

We were never able to use DirContext starting from AEM 6.2 and moved to LDAP API. Here is some documentation around this.

LDAP API Downloads — Apache Directory.

And others mentioned above, added the new pom dependencies to utilize the LDAP API.

Hope that helps!!