From f2ee0c068d4c7797a304a56fc843edd656aba157 Mon Sep 17 00:00:00 2001 From: spencergibb Date: Thu, 14 Nov 2024 12:05:00 -0500 Subject: [PATCH] Use HttpHeaders#headerSet where appropriate Fixes gh-3596 --- .../server/mvc/filter/ForwardedRequestHeadersFilter.java | 2 +- .../server/mvc/filter/RemoveHopByHopRequestHeadersFilter.java | 2 +- .../server/mvc/filter/XForwardedRequestHeadersFilter.java | 2 +- .../cloud/gateway/server/mvc/test/client/ExchangeResult.java | 2 +- .../cloud/gateway/filter/WebsocketRoutingFilter.java | 2 +- .../filter/factory/RequestHeaderSizeGatewayFilterFactory.java | 2 +- .../cloud/gateway/filter/headers/ForwardedHeadersFilter.java | 2 +- .../cloud/gateway/filter/headers/GRPCRequestHeadersFilter.java | 2 +- .../gateway/filter/headers/RemoveHopByHopHeadersFilter.java | 2 +- .../cloud/gateway/filter/headers/XForwardedHeadersFilter.java | 2 +- .../gateway/filter/headers/HttpHeadersFilterMixedTypeTests.java | 2 +- .../cloud/gateway/filter/headers/HttpHeadersFilterTests.java | 2 +- .../cloud/gateway/test/HttpBinCompatibleController.java | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/ForwardedRequestHeadersFilter.java b/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/ForwardedRequestHeadersFilter.java index 7924c5ef..e4fedaf9 100644 --- a/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/ForwardedRequestHeadersFilter.java +++ b/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/ForwardedRequestHeadersFilter.java @@ -93,7 +93,7 @@ public class ForwardedRequestHeadersFilter implements HttpHeadersFilter.RequestH HttpHeaders updated = new HttpHeaders(); // copy all headers except Forwarded - for (Map.Entry> entry : original.entrySet()) { + for (Map.Entry> entry : original.headerSet()) { if (!entry.getKey().equalsIgnoreCase(FORWARDED_HEADER)) { updated.addAll(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/RemoveHopByHopRequestHeadersFilter.java b/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/RemoveHopByHopRequestHeadersFilter.java index d57c2213..0206a38d 100644 --- a/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/RemoveHopByHopRequestHeadersFilter.java +++ b/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/RemoveHopByHopRequestHeadersFilter.java @@ -55,7 +55,7 @@ public class RemoveHopByHopRequestHeadersFilter implements RequestHttpHeadersFil static HttpHeaders filter(HttpHeaders input, Set headersToRemove) { HttpHeaders filtered = new HttpHeaders(); - for (Map.Entry> entry : input.entrySet()) { + for (Map.Entry> entry : input.headerSet()) { if (!headersToRemove.contains(entry.getKey().toLowerCase(Locale.ROOT))) { filtered.addAll(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/XForwardedRequestHeadersFilter.java b/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/XForwardedRequestHeadersFilter.java index 428370b6..db5e0539 100644 --- a/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/XForwardedRequestHeadersFilter.java +++ b/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/XForwardedRequestHeadersFilter.java @@ -374,7 +374,7 @@ public class XForwardedRequestHeadersFilter implements HttpHeadersFilter.Request HttpHeaders original = input; HttpHeaders updated = new HttpHeaders(); - for (Map.Entry> entry : original.entrySet()) { + for (Map.Entry> entry : original.headerSet()) { updated.addAll(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/test/client/ExchangeResult.java b/spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/test/client/ExchangeResult.java index 427aed77..e87ea133 100644 --- a/spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/test/client/ExchangeResult.java +++ b/spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/test/client/ExchangeResult.java @@ -264,7 +264,7 @@ public class ExchangeResult { } private String formatHeaders(HttpHeaders headers, String delimiter) { - return headers.entrySet() + return headers.headerSet() .stream() .map(entry -> entry.getKey() + ": " + entry.getValue()) .collect(Collectors.joining(delimiter)); diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/WebsocketRoutingFilter.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/WebsocketRoutingFilter.java index 04b02e22..7a0bddb0 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/WebsocketRoutingFilter.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/WebsocketRoutingFilter.java @@ -143,7 +143,7 @@ public class WebsocketRoutingFilter implements GlobalFilter, Ordered { headersFilters.add((headers, exchange) -> { HttpHeaders filtered = new HttpHeaders(); - for (Map.Entry> entry : headers.entrySet()) { + for (Map.Entry> entry : headers.headerSet()) { if (!entry.getKey().toLowerCase(Locale.ROOT).startsWith("sec-websocket")) { filtered.addAll(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/RequestHeaderSizeGatewayFilterFactory.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/RequestHeaderSizeGatewayFilterFactory.java index 8dcd9413..b6e0d6b6 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/RequestHeaderSizeGatewayFilterFactory.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/RequestHeaderSizeGatewayFilterFactory.java @@ -69,7 +69,7 @@ public class RequestHeaderSizeGatewayFilterFactory HttpHeaders headers = request.getHeaders(); HashMap longHeaders = new HashMap<>(); - for (Map.Entry> headerEntry : headers.entrySet()) { + for (Map.Entry> headerEntry : headers.headerSet()) { long headerSizeInBytes = 0L; headerSizeInBytes += headerEntry.getKey().getBytes().length; List values = headerEntry.getValue(); diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/ForwardedHeadersFilter.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/ForwardedHeadersFilter.java index 788d305c..b95cb191 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/ForwardedHeadersFilter.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/ForwardedHeadersFilter.java @@ -96,7 +96,7 @@ public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered { HttpHeaders updated = new HttpHeaders(); // copy all headers except Forwarded - for (Map.Entry> entry : original.entrySet()) { + for (Map.Entry> entry : original.headerSet()) { if (!entry.getKey().equalsIgnoreCase(FORWARDED_HEADER)) { updated.addAll(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/GRPCRequestHeadersFilter.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/GRPCRequestHeadersFilter.java index 71489ae9..1c7e9318 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/GRPCRequestHeadersFilter.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/GRPCRequestHeadersFilter.java @@ -33,7 +33,7 @@ public class GRPCRequestHeadersFilter implements HttpHeadersFilter, Ordered { public HttpHeaders filter(HttpHeaders headers, ServerWebExchange exchange) { HttpHeaders updated = new HttpHeaders(); - for (Map.Entry> entry : headers.entrySet()) { + for (Map.Entry> entry : headers.headerSet()) { updated.addAll(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/RemoveHopByHopHeadersFilter.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/RemoveHopByHopHeadersFilter.java index 2a43414b..556f1c97 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/RemoveHopByHopHeadersFilter.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/RemoveHopByHopHeadersFilter.java @@ -74,7 +74,7 @@ public class RemoveHopByHopHeadersFilter implements HttpHeadersFilter, Ordered { Set headersToRemove = new HashSet<>(headers); headersToRemove.addAll(connectionOptions); - for (Map.Entry> entry : originalHeaders.entrySet()) { + for (Map.Entry> entry : originalHeaders.headerSet()) { if (!headersToRemove.contains(entry.getKey().toLowerCase(Locale.ROOT))) { filtered.addAll(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/XForwardedHeadersFilter.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/XForwardedHeadersFilter.java index 1623349e..2c1e8363 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/XForwardedHeadersFilter.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/headers/XForwardedHeadersFilter.java @@ -202,7 +202,7 @@ public class XForwardedHeadersFilter implements HttpHeadersFilter, Ordered { HttpHeaders original = input; HttpHeaders updated = new HttpHeaders(); - for (Map.Entry> entry : original.entrySet()) { + for (Map.Entry> entry : original.headerSet()) { updated.addAll(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/headers/HttpHeadersFilterMixedTypeTests.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/headers/HttpHeadersFilterMixedTypeTests.java index 1ee3cb38..cbb9a4d2 100644 --- a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/headers/HttpHeadersFilterMixedTypeTests.java +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/headers/HttpHeadersFilterMixedTypeTests.java @@ -59,7 +59,7 @@ public class HttpHeadersFilterMixedTypeTests { @Override public HttpHeaders filter(HttpHeaders headers, ServerWebExchange exchange) { HttpHeaders result = new HttpHeaders(); - headers.entrySet().forEach(entry -> { + headers.headerSet().forEach(entry -> { if (!headerNamesSet.contains(entry.getKey())) { result.put(entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/headers/HttpHeadersFilterTests.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/headers/HttpHeadersFilterTests.java index 9940d035..9619b71f 100644 --- a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/headers/HttpHeadersFilterTests.java +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/headers/HttpHeadersFilterTests.java @@ -52,7 +52,7 @@ public class HttpHeadersFilterTests { private HttpHeaders filter(HttpHeaders input, String keyToFilter) { HttpHeaders filtered = new HttpHeaders(); - input.entrySet() + input.headerSet() .stream() .filter(entry -> !entry.getKey().equals(keyToFilter)) .forEach(entry -> filtered.addAll(entry.getKey(), entry.getValue())); diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/HttpBinCompatibleController.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/HttpBinCompatibleController.java index dbf7dd24..5872965f 100644 --- a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/HttpBinCompatibleController.java +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/HttpBinCompatibleController.java @@ -177,7 +177,7 @@ public class HttpBinCompatibleController { public ResponseEntity> responseHeaders(@PathVariable int status, ServerWebExchange exchange) { HttpHeaders httpHeaders = exchange.getRequest() .getHeaders() - .entrySet() + .headerSet() .stream() .filter(entry -> entry.getKey().startsWith("X-Test-")) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,