When CoyoteAdapter forces a redirect from, e.g., /someDir to /someDir/ it omits the jsessionid from the URL. This prevents Filters from using the session after the redirect. To reproduce: 1. Turn off cookies by adding <DefaultContext cookies="false"/> to server.xml. 2. Start Tomcat and browse to the session example: http://localhost:8080/servlets-examples/servlet/SessionExample 3. Click on the "URL encoded" link, e.g.: http://localhost:8080/servlets-examples/servlet/SessionExample;jsessionid=B191701A64C8AA13956E21B3C6D801AA?dataname=foo&datavalue=bar 4. Edit the URL changing "servlet/SessionExample" to "images/" and press Enter: http://localhost:8080/servlets-examples/images/;jsessionid=B191701A64C8AA13956E21B3C6D801AA?dataname=foo&datavalue=bar 5. Edit the URL deleting the "/" before the ";" and press Enter: http://localhost:8080/servlets-examples/images;jsessionid=B191701A64C8AA13956E21B3C6D801AA?dataname=foo&datavalue=bar 6. Observe that the redirected URL is missing the jsessionid: http://localhost:8080/servlets-examples/images/?dataname=foo&datavalue=bar (This bug can also be reproduced without the query parameters.)
I have fixed this in the 5.5.x branch, to be integrated in 5.5.12.