RE: LDAP group and AD

Sébastien Caty <[email protected]> Thu, 25 Jan 2007 17:22:04 -0500
Newsgroups gmane.comp.cms.jahia.devel
Message-ID <[email protected]>
I installed a clean version of Jahia 4.0.5 (we are still using that version on our production server) and changed the JVM to Sun's 1.4.2_13 (instead of Jrockit).

Still gives the same error :

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.jahia.services.usermanager.JahiaGroupManagerRoutingService.routeCall(JahiaGroupManagerRoutingService.java:1119)
        at org.jahia.services.usermanager.JahiaGroupManagerRoutingService.searchGroups(JahiaGroupManagerRoutingService.java:762)
        at org.jahia.data.viewhelper.principal.PrincipalViewHelper.getGroupSearchResult(PrincipalViewHelper.java:385)
        at org.jahia.admin.users.ManageGroups.displayGroupList(ManageGroups.java:255)
        at org.jahia.admin.users.ManageGroups.userRequestDispatcher(ManageGroups.java:144)
        at org.jahia.admin.users.ManageGroups.<init>(ManageGroups.java:121)
        at org.jahia.bin.JahiaAdministration.userRequestDispatcher(JahiaAdministration.java:399)
        at org.jahia.bin.JahiaAdministration.service(JahiaAdministration.java:255)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
        at com.jamonapi.JAMonFilter.doFilter(JAMonFilter.java:113)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.NullPointerException
        at org.jahia.services.usermanager.JahiaGroupManagerLDAPProvider.getGroupMembers(JahiaGroupManagerLDAPProvider.java:1417)
        at org.jahia.services.usermanager.JahiaGroupManagerLDAPProvider.ldapToJahiaGroup(JahiaGroupManagerLDAPProvider.java:1066)
        at org.jahia.services.usermanager.JahiaGroupManagerLDAPProvider.searchGroups(JahiaGroupManagerLDAPProvider.java:694)
        ... 47 more

I downloaded the source code and added some more debugging output to see what information I'm getting from the LDAP server. For example from the class JahiaGroupManagerLDAPProvider within the function getGroupMembers (since the error occurs there) I'm checking if I have some valid members received from the LDAP server.

String userKey = (String)answer.next ();
logger.debug ("userKey : "+userKey);

From the catalina.out log file I can see this :
2007-01-25 17:15:12,881 [TP-Processor1] DEBUG - userKey : = CN=ABC1,OU=IDUL,OU=Comptes,DC=ulaval,DC=ca

It is the correct first member defined in the group, and the user does exist in the LDAP with this DN.
The call : user = getUserManagerProvider().lookupUserFromDN(userKey);
Never seems to work...which is quite strange. Any idea why? Could it be JVM related?