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. 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.java: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(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011) 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]>