You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by dd...@apache.org on 2012/09/13 16:01:10 UTC
svn commit: r1384338 - in /shindig/trunk/java:
common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java
gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
Author: ddumont
Date: Thu Sep 13 14:01:10 2012
New Revision: 1384338
URL: http://svn.apache.org/viewvc?rev=1384338&view=rev
Log:
SHINDIG-1831 - IE8 file download failed when retrieving content through proxy
Committed for Marshall Shi
Modified:
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java?rev=1384338&r1=1384337&r2=1384338&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java Thu Sep 13 14:01:10 2012
@@ -107,13 +107,17 @@ public final class HttpUtil {
}
public static List<Pair<String, String>> getCachingHeadersToSet(int ttl, boolean noProxy) {
+ return getCachingHeadersToSet(ttl, null, null, noProxy);
+ }
+
+ public static List<Pair<String, String>> getCachingHeadersToSet(int ttl, String cacheControl, String pragma, boolean noProxy) {
List<Pair<String, String>> cachingHeaders = Lists.newArrayListWithExpectedSize(3);
cachingHeaders.add(Pair.of("Expires",
DateUtil.formatRfc1123Date(timeSource.currentTimeMillis() + (1000L * ttl))));
if (ttl <= 0) {
- cachingHeaders.add(Pair.of("Pragma", "no-cache"));
- cachingHeaders.add(Pair.of("Cache-Control", "no-cache"));
+ cachingHeaders.add(Pair.of("Pragma", pragma == null ? "no-cache" : pragma));
+ cachingHeaders.add(Pair.of("Cache-Control", cacheControl == null ? "no-cache" : cacheControl));
} else {
if (noProxy) {
cachingHeaders.add(Pair.of("Cache-Control", "private,max-age=" + Integer.toString(ttl)));
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java?rev=1384338&r1=1384337&r2=1384338&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java Thu Sep 13 14:01:10 2012
@@ -90,7 +90,10 @@ public final class ServletUtil {
}
public static void setCachingHeaders(HttpResponseBuilder response, int ttl, boolean noProxy) {
- for (Pair<String, String> header : HttpUtil.getCachingHeadersToSet(ttl, noProxy)) {
+ // Initial cache control headers are in this response, we should now sanitize them or set them if they are missing.
+ String cacheControl = response.getHeader("Cache-Control");
+ String pragma = response.getHeader("Pragma");
+ for (Pair<String, String> header : HttpUtil.getCachingHeadersToSet(ttl, cacheControl, pragma, noProxy)) {
response.setHeader(header.one, header.two);
}
}