[
https://issues.apache.org/jira/browse/WICKET-3258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12972309#action_12972309
]
Hudson commented on WICKET-3258:
--------------------------------
Integrated in Apache Wicket 1.4.x #336 (See
[https://hudson.apache.org/hudson/job/Apache%20Wicket%201.4.x/336/])
> Allow for non-relative redirects for buggy servlet containers
> -------------------------------------------------------------
>
> Key: WICKET-3258
> URL: https://issues.apache.org/jira/browse/WICKET-3258
> Project: Wicket
> Issue Type: Improvement
> Components: wicket
> Affects Versions: 1.4.14, 1.5-M3
> Environment: Websphere
> Reporter: Jeremy Thomerson
> Assignee: Jeremy Thomerson
> Priority: Minor
> Attachments: relativeurlproblem.tar.gz
>
>
> There appears to be a bug in the way WebSphere handles relative URLs. The
> servlet spec
> (http://jcp.org/aboutJava/communityprocess/final/jsr154/index.html), page 260
> specifies the behavior for relative URLs, which Wicket uses, but WebSphere
> appears to ignore. If we send a relative URL like "../../Something.html" to
> HttpServletResponse#sendRedirect, the relative path should be relative *to
> the requested URI* (the page I was requesting that resulted in the redirect).
> WebSphere isn't implementing this behavior correctly. Instead, it appears
> to interpret it as relative *to the app context and servlet mapping*.
>
> More details:
>
> We request a page like:
> http://[server]:[serverport]/[appcontext]/[servletmapping]/somefolder/someotherfolder/foo.html
>
> That page results in an error, and Wicket tries to redirect to an unmounted
> bookmarkable page by doing
> sendRedirect("../../?wicket:bookmarkablePage=:com.FooPage"). This is correct
> according to the servlet spec, because the url passed to sendRedirect should
> be relative *to the requested URI* (<--- this is the key). So, we expect the
> container to redirect to
> http://[server]:[serverport]/[appcontext]/[servletmapping]/?wicket:bookmarkable=com.FooPage
> . Jetty does (and Tomcat and others). But, WebSphere does not.
>
> Although I cannot look at the Websphere code, I suspect that it is
> interpreting this relative URL as being relative to the root of the servlet
> mapping. It is then removing two folders, which takes us back to the server
> root (instead of the servlet mapping, like it should), removing the app
> context and servlet mapping (i.e.
> http://[server]:[serverport]/?wicket:bookmarkable=com.FooPage) This is
> obviously incorrect.
>
> We have tried this compatibility setting (true and false), but it didn't
> work:
> https://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/xrun_jvm_sendredirect.html
>
> There are a lot of reports about the problem:
> http://www.mail-archive.com/[email protected]/msg68864.html
> https://issues.apache.org/jira/browse/STR-1843?page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel
> http://www.mail-archive.com/[email protected]/msg06308.html
> Although we obviously can't fix the issue, we should provide a way for users
> of these servlet containers to redirect to an absolute URL rather than a
> relative URL.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.