spring-projects / spring-projects/spring-framework
Avoid update to request "Content-Type" for characterEncoding in ServletServerHttpRequest
@rstoyanchev is already working on this.
Since Mar 6, 2026.
- Dominant language
- Java
- Stars
- 60.2k
- Forks
- 38.8k
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 27
Description
ServletServerHttpRequest#getHeaders re-creates the MediaType if ServletRequest#getCharacterEncoding is not null but the request "Content-Type" doesn't have a charset parameter. This is quite common in practice because the former is always true while the latter is common and fully expected, e.g. for "application/json".
We can update methods in ServletRequestHeadersAdapter that access header values (getFirst, get) to add special handling for "Content-Type", appending the charset lazily, and caching the result, also ensuring UTF-8 is not appended to "application/json".
That would allow us to drop the code that re-creates the MediaType, that in turn also triggers the RequestHeaderOverrideWrapper to create an override map.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.