Le problème avec cette méthode, c'est que vous ne passez pas par les valves d'autentification de Jahia, car vous accédez directement à un JSP. Nous n'y avions pas pensé tout de suite, mais vous pouvez également utiliser la fonction "template".

Je m'explique. Si vous allez sur http://votreserver/jahia/Jahia/pid/123/cache/bypass/template/popup.jsp alors Jahia va utiliser le fichier popup.jsp (dans lequel on récupère tout les éléments de Jahia, comme dans un template normal) au lieu d'utiliser le template prévu pour la page [123]. De même, si vous alliez sur http://votreserver/jahia/Jahia/pid/123/cache/bypass/template/simple.jsp alors Jahia utiliserait le template simple.jsp

Philippe.


At 15.12.2005 17:10, you wrote:


Bonjour,

Nous avons implémenté avec succès le code de M. Vollenweider concernant les popup. Cela fonctionne parfaitement lorsqu'on est logé dans Jahia en utilisant la fenêtre de login. Par contre, lorsqu'on est logé directement via ntlm, cela ne fonctionne plus (voir error ci-après).

Voici le code du popup:

<%@ page import="org.jahia.bin.*"%>
<%@ page import="java.lang.*"%>
<%@ page import="java.util.*"%>
<%@ page import="org.jahia.bin.*"%>
<%@ page import="org.jahia.content.*"%>
<%@ page import="org.jahia.data.*"%>
<%@ page import="org.jahia.data.beans.*"%>
<%@ page import="org.jahia.data.containers.*"%>
<%@ page import="org.jahia.exceptions.JahiaPageNotFoundException"%>
<%@ page import="org.jahia.params.*"%>
<%@ page import="org.jahia.services.cache.*"%>
<%@ page import="org.jahia.services.pages.*"%>
<%@ page import="org.jahia.services.sites.*"%>
<%@ page import="org.jahia.services.usermanager.*"%>
<%@ page import="org.jahia.services.version.EntryLoadRequest"%>

<head>
<body>
<%
int siteId=1;
int currentPageId = 547;

JahiaUser user = (JahiaUser) request.getSession().getAttribute(ParamBean.SESSION_USER);
JahiaSite site = JahiaSitesBaseService.getInstance().getSite(siteId);
AdminParamBean jParams = new AdminParamBean(request,response,
  getServletConfig().getServletContext(),Jahia.getSettings(),
  System.currentTimeMillis(),ParamBean.GET_METHOD,site,user,
  ContentPage.getPage(currentPageId));
jParams.setUser(user);
jParams.setOperationMode(ParamBean.EDIT);
JahiaData jData = new JahiaData(jParams);
String strTitre=request.getParameter("titre").toString();
%>

Ensuite on a acces aux contenus de Jahia (sauf si user logé en ntlm)

Avez-vous une solution ? Peux-être qu'on pourrait forcer la création d'un user style guest ? Comment faire ?

Merci d'avance,


user (ntlm):
user:Detail of user [BEAUPRJE] - ID [0] - password [] - properties : scriptPath -> [proftl.bat] badPwdCount -> [0] objectClass -> [top person organizationalPerson user] CodeService -> [SX] distinguishedName -> [CN=BEAUPRJE,CN=Users,DC=sig-ge,DC=ch] comment -> [Beaupré Jean-Michel] countryCode -> [0] lastLogoff -> [0] Service -> [Services généraux] whenChanged -> [20051121062801.0Z] badPasswordTime -> [127747060105904816] username -> [BEAUPRJE] accountExpires -> [9223372036854775807] name -> [BEAUPRJE] organization -> [] whenCreated -> [20041127012452.0Z] sAMAccountName -> [BEAUPRJE] uSNCreated -> [27433770] uSNChanged -> [35010310] primaryGroupID -> [513] pwdLastSet -> [127770280811522165] objectCategory -> [CN=Person,CN=Schema,CN=Configuration,DC=sig-ge,DC=ch] lastname -> [] instanceType -> [4] userAccountControl -> [512] cn -> [BEAUPRJE] objectGUID -> [?????bJ?/??D?] lastLogon -> [127791274707837038] memberOf -> [CN=Jahia-Dev,OU=Serveurs,DC=sig-ge,DC=ch CN=$WWW,CN=Users,DC=sig-ge,DC=ch CN=$FTP,CN=Users,DC=sig-ge,DC=ch CN=GAAPROJE,CN=Users,DC=sig-ge,DC=ch CN=GAAFLEX,CN=Users,DC=sig-ge,DC=ch CN=\#6570,CN=Users,DC=sig-ge,DC=ch] objectSid -> [? _%+1D:d?I?%] firstname -> [Beaupré Jean-Michel] description -> [Beaupré Jean-Michel] email -> [] sAMAccountType -> [805306368] logonCount -> [774] codePage -> [0] displayName -> [Beaupré Jean-Michel]

guest:
user:Detail of user [guest] - ID [2] - password [NWdeaPS1r3uZXZIFrQ/EOELxZFA=] - properties : -no properties-

error si logé ntlm:
Etat HTTP 500 -

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

type Rapport d''exception

message

description Le serveur a rencontré une erreur interne () qui l'a empèché de satisfaire la requête.

exception

javax.servlet.ServletException: No user present !, No current user defined in the params in buildData() method. at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:498)
        at org.apache.jsp.popupView_jsp._jspService(popupView_jsp.java:155)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
        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 org.jahia.bin.filters.ntlm.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:137) 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.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:534)


cause mère

org.jahia.exceptions.JahiaException: No user present !, No current user defined in the params in buildData() method.
        at org.jahia.data.JahiaData.buildData(JahiaData.java:118)
        at org.jahia.data.JahiaData.<init>(JahiaData.java:83)
        at org.apache.jsp.popupView_jsp._jspService(popupView_jsp.java:101)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
        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 org.jahia.bin.filters.ntlm.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:137) 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.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:534)




-----------------------------------------------------------------------------------
Christian Mermoud
Services Industriels Genève
Case Postale 2777
1211 Genève 2
Tel. +41 (0)22/ 420 87 99 Fax+41 (0)22/ 420 98 72
www.sig-ge.ch

-------=[ pvollenweider at jahia dot com ]=---------
Jahia : A collaborative source CMS and Portal Server
www.jahia.org Community and product web site
www.jahia.com Commercial services company

  • popup Jean-Michel Beaupré
    • Re: popup Philippe Vollenweider

Répondre à