Nick Kew wrote:
On Fri, 13 Apr 2007 16:30:06 -0500
Andy Wang <[EMAIL PROTECTED]> wrote:
There are a number of potential workarounds (LocationMatch, or
Multiple Location blocks to deal with the ;* pattern) but it does
seem like this is a bug unless someone can clarify RFC 2396 section
3.3 for me and explain why it isn't.
Your reading of the RFC is correct but irrelevant. The semantics of <Location> are (like <Directory>) based on path components.
It's clear they are today, but is that really proper?

Java servlet engines have an encodeURL() API that is the standard means of cookie-less session passing and uses exactly this URL syntax.

Thus anyone using Location in conjunction with Java servlet engines may be getting unexpected results. For instance, using Location /x/y/z to establish authentication via Apache will not establish authentication on /x/y/z;jsessionid=xxx -- yet the servlet engine will treat the two the same (except that the latter denotes a particular session). This is thus a security hole for the unaware (if they were using authentication to prevent access to those resources, not just to establish identity for use of them).

We can certainly change add more Location blocks or use LocationMatch to handle /x/y/z;*, but this seems to be a clear disconnect between Apache's Location notion and that of both the RFC and Java servlet engines.

I realize that this is an old issue that has been left "as is" for years. We're running into it only now because we normally only allow cookie-based session passing but suddenly have cause to support this form as well in some corner cases. While we can work around the issue it would seem Location should simply be fixed.

--
Jess Holle

Reply via email to