Author: pauls Date: Tue Mar 28 12:24:42 2017 New Revision: 1789104 URL: http://svn.apache.org/viewvc?rev=1789104&view=rev Log: SLING-6064 : Only encode url for redirecting when url not absolute.
Modified: sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/RedirectServlet.java Modified: sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/RedirectServlet.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/RedirectServlet.java?rev=1789104&r1=1789103&r2=1789104&view=diff ============================================================================== --- sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/RedirectServlet.java (original) +++ sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/RedirectServlet.java Tue Mar 28 12:24:42 2017 @@ -150,6 +150,7 @@ public class RedirectServlet extends Sli targetPath = targetResource.adaptTo(String.class); } + boolean absolute = false; // if we got a target path, make it external and redirect to it if (targetPath != null) { if (!isUrl(targetPath)) { @@ -160,6 +161,7 @@ public class RedirectServlet extends Sli // just append any selectors, extension, suffix and query string targetPath = appendSelectorsExtensionSuffixQuery(request, new StringBuilder(targetPath)).toString(); + absolute = true; } final int status = getStatus(valueMap); @@ -169,7 +171,7 @@ public class RedirectServlet extends Sli // into an absolute URI. response.reset(); response.setStatus(status); - response.setHeader("Location", response.encodeRedirectURL(targetPath)); + response.setHeader("Location", absolute ? targetPath : response.encodeRedirectURL(targetPath)); response.flushBuffer(); return;