Add HEAD support in MVC/WebFlux Resource handling
This commit introduces explicit HEAD support in Spring MVC's ResourceHttpRequestHandler and WebFlux's ResourceWebHandler, adding just headers but no body. Closes gh-28291
This commit is contained in:
@@ -585,7 +585,14 @@ public class ResourceHttpRequestHandler extends WebContentGenerator
|
||||
ServletServerHttpResponse outputMessage = new ServletServerHttpResponse(response);
|
||||
if (request.getHeader(HttpHeaders.RANGE) == null) {
|
||||
Assert.state(this.resourceHttpMessageConverter != null, "Not initialized");
|
||||
this.resourceHttpMessageConverter.write(resource, mediaType, outputMessage);
|
||||
|
||||
if (HttpMethod.HEAD.matches(request.getMethod())) {
|
||||
this.resourceHttpMessageConverter.addDefaultHeaders(outputMessage, resource, mediaType);
|
||||
outputMessage.flush();
|
||||
}
|
||||
else {
|
||||
this.resourceHttpMessageConverter.write(resource, mediaType, outputMessage);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Assert.state(this.resourceRegionHttpMessageConverter != null, "Not initialized");
|
||||
|
||||
@@ -118,7 +118,8 @@ public class ResourceHttpRequestHandlerTests {
|
||||
assertThat(this.response.containsHeader("Last-Modified")).isTrue();
|
||||
assertThat(this.response.getDateHeader("Last-Modified") / 1000).isEqualTo(resourceLastModified("test/foo.css") / 1000);
|
||||
assertThat(this.response.getHeader("Accept-Ranges")).isEqualTo("bytes");
|
||||
assertThat(this.response.getHeaders("Accept-Ranges").size()).isEqualTo(1);
|
||||
assertThat(this.response.getHeaders("Accept-Ranges")).hasSize(1);
|
||||
assertThat(this.response.getContentAsByteArray()).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user