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);
}
}