[
https://issues.apache.org/jira/browse/SLING-2543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13464714#comment-13464714
]
James Phillpotts commented on SLING-2543:
-----------------------------------------
Ah-ha, I was wrong - it's SlingHttpServletResponseImpl that was doing that:
private String makeAbsolutePath(String path) {
if (path.startsWith("/")) {
return path;
}
String base = getRequestData().getContentData().getResource().getPath();
int lastSlash = base.lastIndexOf('/');
if (lastSlash >= 0) {
path = base.substring(0, lastSlash+1) + path;
} else {
path = "/" + path;
}
return path;
}
In the case of a create post ending in / at the end, the
getRequestData().getContentData().getResource().getPath() returns /abc/def
(rather than /abc/def/). This method is called from
SlingHttpServletResponseImpl.encodeRedirectURL.
> SlingPostServlet is not encoding redirect URLs
> ----------------------------------------------
>
> Key: SLING-2543
> URL: https://issues.apache.org/jira/browse/SLING-2543
> Project: Sling
> Issue Type: Bug
> Components: Servlets
> Affects Versions: Servlets Post 2.1.2
> Reporter: James Phillpotts
> Assignee: Bertrand Delacretaz
> Fix For: Servlets Post 2.1.4
>
> Attachments: SLING-2543-integration-tests-fix.patch, SLING-2543.patch
>
>
> According to the JavaEE documentation for
> HttpServletResponse.encodeRedirectURL, "All URLs sent to the
> HttpServletResponse.sendRedirect method should be run through this method."
> The SlingPostServlet isn't doing this, and so if you try and redirect to a
> node that contains special characters in the name, the redirect URL is
> incorrect.
> e.g. A post request containing :name of Друга and :redirect of *.html gets a
> redirect URL of ?????.html rather than %D0%94%D1%80%D1%83%D0%B3%D0%B0.html as
> would be expected.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira