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;


Reply via email to