Thanks for your reply.

Serge Huber a écrit :


Hi Cédric,

Which version of Jahia are you using ? In 4.0.5 we added a lot of caches in the LDAP implementation, so you shouldn't be seeing this problem anymore.

We use the version 4.0.5 (after migrating from 4.0.4).

For instance, after adding a user in the LDAP, the login of this user crashes (see the error below). But after flushing ALL the caches, it seems to work.

Your Jahia Server has generated an error. Please review the details below for additional information:

Error : null

URL : http://abw0.astron.biz/cyprion/Jahia/engineName/login/pid/1   Method : 
POST

Remote host : null     Remote Address : 192.168.102.100

Request headers : x-forwarded-host:extranet.astron.biz
  x-forwarded-for:192.168.204.143
  accept-encoding:gzip, deflate
  
referer:https://extranet.astron.biz/cyprion/Jahia/engineName/login/pid/1?matrix=1120124401163&matrix=2111
  connection:close
  cookie:JSESSIONID=83B1C521FE80CA034B74F6545FBFF94A
  content-type:application/x-www-form-urlencoded
  content-length:45
  x-forwarded-server:extranet.astron.biz
  cache-control:no-cache
  host:abw0.astron.biz
  accept-language:en-us
  user-agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 
1.1.4322)
  accept:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, 
application/x-shockwave-flash, */*

Stack trace : Cause level : 0 (level 0 is the most precise exception) java.lang.NullPointerException
        at 
org.jahia.engines.login.Login_Engine.processScreen(Login_Engine.java:283)
        at 
org.jahia.engines.login.Login_Engine.handleActions(Login_Engine.java:126)
        at 
org.jahia.operations.OperationManager.handleOperations(OperationManager.java:279)
        at org.jahia.bin.JahiaAction.execute(JahiaAction.java:50)
        at 
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
        at 
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
        at 
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at org.jahia.bin.Jahia.process(Jahia.java:1522)
        at org.jahia.bin.Jahia.service(Jahia.java:846)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:466)
        at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:585)
        at java.lang.Thread.run(Thread.java:534)




Cédric REYMANN wrote:

Hi,

I have two problems with the LDAP capabilities of Jahia.

The first one is that Jahia gather all the information from the LDAP server for each visited page. As if the cache weren't used. By the way, these LDAP requests are very slow if we compare them to another LDAP client for which it works fine. What can we do ?

The second point is that when we make a modification to LDAP users or group, this modification isn't seen by Jahia. This is strange regarding the first problem. And flushing the LDAP caches isn't sufficient : after the flush of all caches, it works fine. The question is, how does the LDAP cache work and is it possible to make the cache expire sometime ? So that the guy who modify the LDAP doesn't need to refer to the Jahia administrator.


You can expire the cache manually through the administration ("Server and cache status"). You could also programmatically expire the cache by flusing the corresponding cache. For the moment there is no time-based expiration possible but will be possible in future versions of Jahia (as we will be making the cache implementation pluggeable).

Regards,
 Serge Huber.






--
Cédric Reymann
Consultant Informatique
Actimage



Reply via email to