> > However, with useRelativeRedirects="false" I see
> >
> > GET http://hostname/myapp?m=n&o=p
> >               ==> 302: "http://hostname/login?a=b&c=d";
> >
> > The questions I have are 2: First, what happened with the trailing slash
> redirect. I vaguely remember discussions around it but I couldn't find them
> on the mailing list search index. And secondly but more importantly, in 
> 7.0.64,
> the HttpServletRequest.sendRedirect() would use the application name to
> form the Location header value (as in .../myapp/login...) whereas in 7.0.67
> the name of the application is missing from the absolute redirect.
> >
> > Is there any way to work around this and to have 7.0.67 behave like 7.0.64?
> 
> Setting mapperContextRootRedirectEnabled="true" on the Context should
> fix it.
> 
> Mark
> 
> Thanks Mark. So if I understand correctly, 7.0.68 will return to adding the
> trailing slash automatically just like 7.0.64 did. That for now can be worked
> around by setting that attribute above on the context for now.
> 
> With the trailing slash optional though, the code in
> "org.apache.catalina.connector.Response#toAbsolute(String)" still seems will
> yield wrong redirect URLs for the case where someone is running with trailing
> slash redirect disabled:
> 
>                     String relativePath = request.getDecodedRequestURI();
>                     int pos = relativePath.lastIndexOf('/');
>                     ...
>                     } else {
>                         encodedURI = urlEncoder.encodeURL(relativePath, 0, 
> pos);
>                     }
> 
> In case of relativePath being "/myapp" (which will be the case when somone
> runs with traliling-slash-redirect being turned off), encodedURI will be "".
> 
> So it seems to me either TC should *always* force those trailing-slash-
> redirects or fix the code above to correctly calculate the encodedURI from
> the relativePath...

Tomcat is generating 404 if I make a GET on [1] but succeeding on [2]. No 
mapper attributes are set on the context. I think I am missing something 
fundamental here but I don't know what. Servlet is mapped as /login in the 
deployment descriptor. Is there any reference where I can read up on this stuff?

[1] http://hostname/myapp/login/?a=b&c=d
[2] http://hostname/myapp/login?a=b&c=d

Reply via email to