diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/ProxyRequestHelper.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/ProxyRequestHelper.java index 1f220f51..3f53f437 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/ProxyRequestHelper.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/ProxyRequestHelper.java @@ -157,30 +157,15 @@ public class ProxyRequestHelper { context.setResponseDataStream(entity); } - HttpHeaders httpHeaders = new HttpHeaders(); - for (Entry> header : headers.entrySet()) { - List values = header.getValue(); - for (String value : values) { - httpHeaders.add(header.getKey(), value); - } - } boolean isOriginResponseGzipped = false; - if (httpHeaders.containsKey(CONTENT_ENCODING)) { - List collection = httpHeaders.get(CONTENT_ENCODING); - for (String header : collection) { - if (HTTPRequestUtils.getInstance().isGzipped(header)) { - isOriginResponseGzipped = true; - break; - } - } - } - context.setResponseGZipped(isOriginResponseGzipped); - for (Entry> header : headers.entrySet()) { String name = header.getKey(); for (String value : header.getValue()) { - context.addOriginResponseHeader(name, value); - if (name.equalsIgnoreCase(CONTENT_LENGTH)) { + if (name.equalsIgnoreCase(HttpHeaders.CONTENT_ENCODING) + && HTTPRequestUtils.getInstance().isGzipped(value)) { + isOriginResponseGzipped = true; + } + if (name.equalsIgnoreCase(HttpHeaders.CONTENT_LENGTH)) { context.setOriginContentLength(value); } if (isIncludedHeader(name)) { @@ -188,6 +173,7 @@ public class ProxyRequestHelper { } } } + context.setResponseGZipped(isOriginResponseGzipped); } public void addIgnoredHeaders(String... names) {