diff --git a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java index cddc62ba5847..b3fb32f82e71 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -1136,7 +1136,7 @@ public void setHost(@Nullable InetSocketAddress host) { set(HOST, value); } else { - remove(HOST, null); + remove(HOST); } } diff --git a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java index 7767b4ea41ed..c87123d22595 100644 --- a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java +++ b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java @@ -213,6 +213,15 @@ void ipv6Host() { assertThat(headers.getFirst("Host")).as("Invalid Host header").isEqualTo("[::1]"); } + @Test + void hostDeletion() { + InetSocketAddress host = InetSocketAddress.createUnresolved("localhost", 8080); + headers.setHost(host); + headers.setHost(null); + assertThat(headers.getHost()).as("Host is not deleted").isEqualTo(null); + assertThat(headers.getFirst("Host")).as("Host is not deleted").isEqualTo(null); + } + @Test void eTagWithoutQuotes() { headers.setETag("v2.6");