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:
Arjen Poutsma
2022-04-07 13:51:21 +02:00
parent df5e3f79e1
commit 9adfa5e8b0
6 changed files with 54 additions and 19 deletions

View File

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