Merge branch '4.1.x'

This commit is contained in:
spencergibb
2024-11-14 12:05:13 -05:00
15 changed files with 17 additions and 15 deletions

View File

@@ -93,7 +93,7 @@ public class ForwardedRequestHeadersFilter implements HttpHeadersFilter.RequestH
HttpHeaders updated = new HttpHeaders();
// copy all headers except Forwarded
for (Map.Entry<String, List<String>> entry : original.entrySet()) {
for (Map.Entry<String, List<String>> entry : original.headerSet()) {
if (!entry.getKey().equalsIgnoreCase(FORWARDED_HEADER)) {
updated.addAll(entry.getKey(), entry.getValue());
}

View File

@@ -55,7 +55,7 @@ public class RemoveHopByHopRequestHeadersFilter implements RequestHttpHeadersFil
static HttpHeaders filter(HttpHeaders input, Set<String> headersToRemove) {
HttpHeaders filtered = new HttpHeaders();
for (Map.Entry<String, List<String>> entry : input.entrySet()) {
for (Map.Entry<String, List<String>> entry : input.headerSet()) {
if (!headersToRemove.contains(entry.getKey().toLowerCase(Locale.ROOT))) {
filtered.addAll(entry.getKey(), entry.getValue());
}

View File

@@ -374,7 +374,7 @@ public class XForwardedRequestHeadersFilter implements HttpHeadersFilter.Request
HttpHeaders original = input;
HttpHeaders updated = new HttpHeaders();
for (Map.Entry<String, List<String>> entry : original.entrySet()) {
for (Map.Entry<String, List<String>> entry : original.headerSet()) {
updated.addAll(entry.getKey(), entry.getValue());
}

View File

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

View File

@@ -143,7 +143,7 @@ public class WebsocketRoutingFilter implements GlobalFilter, Ordered {
headersFilters.add((headers, exchange) -> {
HttpHeaders filtered = new HttpHeaders();
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
for (Map.Entry<String, List<String>> entry : headers.headerSet()) {
if (!entry.getKey().toLowerCase(Locale.ROOT).startsWith("sec-websocket")) {
filtered.addAll(entry.getKey(), entry.getValue());
}

View File

@@ -69,7 +69,7 @@ public class RequestHeaderSizeGatewayFilterFactory
HttpHeaders headers = request.getHeaders();
HashMap<String, Long> longHeaders = new HashMap<>();
for (Map.Entry<String, List<String>> headerEntry : headers.entrySet()) {
for (Map.Entry<String, List<String>> headerEntry : headers.headerSet()) {
long headerSizeInBytes = 0L;
headerSizeInBytes += headerEntry.getKey().getBytes().length;
List<String> values = headerEntry.getValue();

View File

@@ -96,7 +96,7 @@ public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
HttpHeaders updated = new HttpHeaders();
// copy all headers except Forwarded
for (Map.Entry<String, List<String>> entry : original.entrySet()) {
for (Map.Entry<String, List<String>> entry : original.headerSet()) {
if (!entry.getKey().equalsIgnoreCase(FORWARDED_HEADER)) {
updated.addAll(entry.getKey(), entry.getValue());
}

View File

@@ -33,7 +33,7 @@ public class GRPCRequestHeadersFilter implements HttpHeadersFilter, Ordered {
public HttpHeaders filter(HttpHeaders headers, ServerWebExchange exchange) {
HttpHeaders updated = new HttpHeaders();
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
for (Map.Entry<String, List<String>> entry : headers.headerSet()) {
updated.addAll(entry.getKey(), entry.getValue());
}

View File

@@ -74,7 +74,7 @@ public class RemoveHopByHopHeadersFilter implements HttpHeadersFilter, Ordered {
Set<String> headersToRemove = new HashSet<>(headers);
headersToRemove.addAll(connectionOptions);
for (Map.Entry<String, List<String>> entry : originalHeaders.entrySet()) {
for (Map.Entry<String, List<String>> entry : originalHeaders.headerSet()) {
if (!headersToRemove.contains(entry.getKey().toLowerCase(Locale.ROOT))) {
filtered.addAll(entry.getKey(), entry.getValue());
}

View File

@@ -202,7 +202,7 @@ public class XForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
HttpHeaders original = input;
HttpHeaders updated = new HttpHeaders();
for (Map.Entry<String, List<String>> entry : original.entrySet()) {
for (Map.Entry<String, List<String>> entry : original.headerSet()) {
updated.addAll(entry.getKey(), entry.getValue());
}

View File

@@ -22,6 +22,7 @@ import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.http.HttpStatus;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.http.MediaType.APPLICATION_JSON;
/**
@@ -154,11 +155,11 @@ public abstract class SpringCloudCircuitBreakerFilterFactoryTests extends BaseWe
.is5xxServerError()
.expectBody()
.jsonPath("$.status")
.isEqualTo(504)
.value(status -> assertThat(HttpStatus.valueOf((Integer) status).is5xxServerError()).isTrue())
.jsonPath("$.message")
.isNotEmpty()
.jsonPath("$.error")
.isEqualTo("Gateway Timeout");
.isNotEmpty();
}
@Test

View File

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

View File

@@ -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()));

View File

@@ -96,6 +96,7 @@ public class PathRoutePredicateFactoryTests extends BaseWebClientTests {
}
@Test
// @Disabled
public void pathRouteWorksWithPercent() {
testClient.get()
.uri("/abc/123%/function")

View File

@@ -177,7 +177,7 @@ public class HttpBinCompatibleController {
public ResponseEntity<Map<String, Object>> 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,