> From: Kai Bruns [mailto:[EMAIL PROTECTED]] > > > I'm using Cocoon 2.0.1 on Tomcat 4.0.1. I've set up my main sitemap to > match different sub-uris and then mount a sub-sitemap for the corresponding > sub-directory the way it's done in the cocoon sub-sitemap example. In > addition I want to do user authentication for a whole subsitemap in the > main sitemap this way: > > > <map:match pattern="sub/**"> > <map:act type="session-validator"> > <map:parameter name="descriptor" value > ="context://descriptors/params.xml"/> > <map:parameter name="validate" value="username"/> > </map:act> > <!-- something was wrong, redirect to login page --> > <map:redirect-to uri="../login"/> > </map:match> > > > So far so good, although I do not understand why I must use > <map:redirect-to uri="../login"/> with prefix '../' in my main sitemap, > maybe that's already a hint for a problem. > > What I wanted to do is to access the sitemap param 'username' in the > subsitemap, which does not work.
You are right. This does not work. Vadim > I tried the following entry in my > subsitemap: > > > <map:match pattern="*.html"> > <map:generate src="docs/{1}.xml"/> > <map:transform src="../stylesheets/mystyle.xsl"> > <map:parameter name="use-request-parameters" value="true"/> > <map:parameter name="username" value="{../username}"/> > </map:transform> > <map:serialize/> > </map:match> > > > That throws an Exception when calling a subsite page (being already > authenticated, of course): > > org.apache.cocoon.sitemap.PatternException: error occurred during > evaluation of expression "{../username}" at position 1 Index: -1, Size: 1 > at > org.apache.cocoon.sitemap.AbstractSitemap.substitute(AbstractSitemap.jav a:322) > > at > org.apache.cocoon.www.region.sitemap_xmap.matchN100BE(sitemap_xmap.java: 1029) > > at org.apache.cocoon.www.region.sitemap_xmap.process(sitemap_xmap.java:600) > at org.apache.cocoon.www.region.sitemap_xmap.process(sitemap_xmap.java:518) > at org.apache.cocoon.sitemap.Handler.process(Handler.java:180) at > org.apache.cocoon.sitemap.Manager.invoke(Manager.java:127) at > org.apache.cocoon.www.sitemap_xmap.matchN10250(sitemap_xmap.java:1991) at > org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1437) at > org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1348) at > org.apache.cocoon.sitemap.Handler.process(Handler.java:180) at > org.apache.cocoon.sitemap.Manager.invoke(Manager.java:127) at > org.apache.cocoon.sitemap.SitemapManager.process(SitemapManager.java:144 ) > at org.apache.cocoon.Cocoon.process(Cocoon.java:582) at > org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:795) at > javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFi > lterChain.java:247) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChai > n.java:193) > > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java > :243) > > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja va:566 > ) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 72) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java > :201) > > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja va:566 > ) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 72) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:234 4) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :164) > > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja va:566 > ) > > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa lve.ja > va:170) > > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja va:564 > ) > > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :170) > > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja va:564 > ) > > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462 ) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja va:564 > ) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 72) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:1 > 63) > > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja va:566 > ) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 72) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at > org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.j ava:10 > 11) > > at > org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java: 1106) > > at java.lang.Thread.run(Thread.java:484) > > > I also tried to use {username} instead if {../username} which of course did > not work because there is no sitemap param username on the param stack top. > > Did I expect the wrong behaviour in param-handling when using <map:mount> > or did I do any other mistake? > > Thanks for help, > > > Dipl.-Inform. Kai Bruns > regio gmbh > Institut für Regionalentwicklung und Informationssysteme > an der Carl von Ossietzky Universität Oldenburg > D-26111 Oldenburg > Tel ++49 (0)441 798-2827 > Fax ++49 (0)441 798-3002 > eMail [EMAIL PROTECTED] > http://www.regio.uni-oldenburg.de > --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faqs.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>