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