SLING-7140 Support redirects to URLs provided by the underlying resource provider.
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1812621 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index cfddb76..6ebf489 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,7 +92,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
- <version>2.7.0</version>
+ <version>2.16.3-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java b/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
index b5e7bb9..1da4444 100644
--- a/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
+++ b/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
@@ -42,6 +42,7 @@
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.request.RequestDispatcherOptions;
+import org.apache.sling.api.resource.ExternalizableInputStream;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceNotFoundException;
@@ -50,6 +51,7 @@
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.apache.sling.api.resource.ExternalizableInputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -167,6 +169,10 @@
}
InputStream stream = resource.adaptTo(InputStream.class);
if (stream != null) {
+ if ( stream instanceof ExternalizableInputStream) {
+ response.sendRedirect(((ExternalizableInputStream)stream).getURI().toString());
+ return;
+ }
if (isHeadRequest(request)) {
setContentLength(response, resource.getResourceMetadata().getContentLength());
setHeaders(resource, response);