Hi,
Serge Huber a écrit :
Hi Cédric,
The problem is that Jahia has no way of knowing that you added user
into the LDAP.
OK but as flushing de Jahia caches isn't enough, when we flush all
caches, the next connections are very awfully slow, the site is then
unusable for several minutes.
In Jahia 4.0.4, before the migration to 4.0.5, flushing the LDAP caches
was OK. What change has caused this in the new version ?
What is stranger is that it crashes on the following line :
283: engineMap.put (ENGINE_URL_PARAM,
jParams.composePageUrl (loginPage.getID ()));
This is probably because loginPage is null, but it shouldn't be. Do
you have a strange configuration with home pages ?
In fact, all the rights were lost, maybe during the migration : the
users lost access to their home page. But then, why was this OK after a
cache flush ?
Regards,
Serge Huber.
Cédric REYMANN wrote:
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