The change in [1] has broken existing behaviour in some applications.

Consider the following situation:
- An application is context path /application
- The application has a servlet mapped to /*
- An authentication valve intercepts requests to /application and
returns (via a RequestDispatcher.forward()) a login page that POSTs
back to the original path. An HTTP session is used to track the
progress of the login process.
- The application is accessed with Google Chrome with the URI
http://server/application

What happens is:
- During the redirection to the login page, Tomcat returns a JSESSONID
cookie for the path /application/
- The login page then submits a POST to /application
- Chrome (15.0 dev channel) and Internet Explorer (8.0) do not send
the JSESSIONID cookie with the POST request
- (In this particular app, an amusing loop results due to some session
timeout handling)

What's going on under the hood:
- Tomcat (Mapper.internalMapWrapper Rule #2) is considering that there
is a mapping for /application (the /*)
- Tomcat is then setting a cookie for a /application/

This seems wrong - we're considering a path as being part of a
context, but establishing a session that will not include that path
(for some browsers at least).
This notably makes Cookie based session tracking inconsistent with URL
rewriting.

Firefox (5.0) seems to sort this out and send the /application/ cookie
on the /application requests.

[2] made this behaviour configurable, but still defaulted it to the
new behaviour of appending slashes.

Questions I have:

1) Is what's described above the desired behaviour (that a path mapped
to a web application might not be included in the web application
session)
2) Should this change in behaviour have been made the default in Tomcat 7?
3) ... or are Chrome/IE or Firefox broken?

tim
------------------

[1] https://svn.apache.org/viewvc?view=revision&revision=1100992
[2] http://svn.apache.org/viewvc?view=revision&revision=1101069

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to