Avoid setting special Content-* response headers for Tomcat
As of gh-21783, Spring WebFlux uses a `TomcatHeadersAdapter` implementation to directly address the native headers used by the server. In the case of Tomcat, "Content-Length" and "Content-Type" headers are processed separately and should not be added to the native headers map. This commit improves the `HandlerAdapter` implementation for Tomcat and removes those headers, if previously set in the map. The adapter already has a section that handles the Tomcat-specific calls for such headers. Fixes gh-24361
This commit is contained in:
		
							parent
							
								
									daa30a9f0b
								
							
						
					
					
						commit
						59bef22235
					
				|  | @ -216,6 +216,7 @@ public class TomcatHttpHandlerAdapter extends ServletHttpHandlerAdapter { | ||||||
| 			if (response.getContentType() == null && contentType != null) { | 			if (response.getContentType() == null && contentType != null) { | ||||||
| 				response.setContentType(contentType.toString()); | 				response.setContentType(contentType.toString()); | ||||||
| 			} | 			} | ||||||
|  | 			getHeaders().remove(HttpHeaders.CONTENT_TYPE); | ||||||
| 			Charset charset = (contentType != null ? contentType.getCharset() : null); | 			Charset charset = (contentType != null ? contentType.getCharset() : null); | ||||||
| 			if (response.getCharacterEncoding() == null && charset != null) { | 			if (response.getCharacterEncoding() == null && charset != null) { | ||||||
| 				response.setCharacterEncoding(charset.name()); | 				response.setCharacterEncoding(charset.name()); | ||||||
|  | @ -224,6 +225,7 @@ public class TomcatHttpHandlerAdapter extends ServletHttpHandlerAdapter { | ||||||
| 			if (contentLength != -1) { | 			if (contentLength != -1) { | ||||||
| 				response.setContentLengthLong(contentLength); | 				response.setContentLengthLong(contentLength); | ||||||
| 			} | 			} | ||||||
|  | 			getHeaders().remove(HttpHeaders.CONTENT_LENGTH); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		@Override | 		@Override | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue