[MAGNOLIA-4003] info.magnolia.module.admininterface.PageMVCServlet#getHandler can be broken with recent tomcat versions Created: 07/Mar/12 Updated: 04/Apr/14 Resolved: 24/Mar/14 |
|
| Status: | Closed |
| Project: | Magnolia |
| Component/s: | core |
| Affects Version/s: | 4.4.6 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Neutral |
| Reporter: | Rico Jansen | Assignee: | Christopher Zimmermann |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | VPRO, next, support | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Template: |
|
||||||||
| Acceptance criteria: |
Empty
|
||||||||
| Task DoD: |
[ ]*
Doc/release notes changes? Comment present?
[ ]*
Downstream builds green?
[ ]*
Solution information and context easily available?
[ ]*
Tests
[ ]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
||||||||
| Bug DoR: |
[ ]*
Steps to reproduce, expected, and actual results filled
[ ]*
Affected version filled
|
||||||||
| Date of First Response: | |||||||||
| Description |
|
Starting with tomcat 6.0.33 the tomcat behavior for request.getPathInfo() has changed. It seems that the servlet specs require this method to return the jsessionid part of the request path as well. Older versions of tomcat kindly removed this bit. the info.magnolia.module.admininterface.PageMVCServlet#getHandler method is not taking this into account. It should test for and strip from the path the jsessionid. In our setup this omission collides with the curious fact that the login filter now creates a redirect url that contains a jsessionid bit that is appended with '.[hostname]', as in: http://redactie.3voor12.vpro.nl/.magnolia/pages/adminCentral.html;jsessionid=06CABB93C2E6BED8A46434E883CD298C.vpro6a This breaks the page name resolving code. We still don't know why this url is create in this way. We will log it when we do. |
| Comments |
| Comment by Rico Jansen [ 07/Mar/12 ] |
|
See this: https://issues.apache.org/bugzilla/show_bug.cgi?id=51833 |
| Comment by Rico Jansen [ 07/Mar/12 ] |
|
if the jvmRoute attribute is set on the Engine element in tomcat server.xml config file, this value will be appended to the jsessionid string. info.magnolia.module.admininterface.PageMVCServlet#getHandler bites the dus when this happens. |
| Comment by Nils Breunese [ 07/Mar/12 ] |
|
Another phenomenon related to this: INFO info.magnolia.cms.beans.config.MIMEMapping 07.03.2012 14:37:45 – Cannot find MIME type for extension "html;jsessionid=C20A57D99CDB39741BC8745B318B508C" |
| Comment by Tobias Mattsson [ 03/Dec/13 ] |
|
Many issues related to this change in tomcat has been fixed as part of |
| Comment by Jan Haderka [ 10/Mar/14 ] |
|
Check. As per comment from Tobias above, this issue should be fixed since Magnolia 4.5.14. |
| Comment by Christopher Zimmermann [ 24/Mar/14 ] |
|
jsessionid is indeed removed from the pageName in 4.5.14 and on. See related ticket. The ServletUtil#getRequestUri method strips out path parameters like ;jsessionid. If you do not want to upgrade for some reason - or patch your codebase, you could take one of these steps to remove the jsessionid from the url: http://stackoverflow.com/questions/962729/is-it-possible-to-disable-jsessionid-in-tomcat-servlet |