mirror of
https://github.com/spring-projects/spring-framework
synced 2026-06-08 17:33:33 +00:00
Enforce custom string converter in HttpMessageConverters
Prior to this commit, configuring a custom `StringHttpMessageConverter` would be overwritten when the `registerDefaults()` option is enabled. Fixes gh-35563
This commit is contained in:
+3
-1
@@ -247,8 +247,10 @@ class DefaultHttpMessageConverters implements HttpMessageConverters {
|
||||
|
||||
void detectMessageConverters() {
|
||||
this.byteArrayMessageConverter = new ByteArrayHttpMessageConverter();
|
||||
this.stringMessageConverter = new StringHttpMessageConverter();
|
||||
|
||||
if (this.stringMessageConverter == null) {
|
||||
this.stringMessageConverter = new StringHttpMessageConverter();
|
||||
}
|
||||
if (this.jsonMessageConverter == null) {
|
||||
if (JACKSON_PRESENT) {
|
||||
this.jsonMessageConverter = new JacksonJsonHttpMessageConverter();
|
||||
|
||||
+21
@@ -177,6 +177,16 @@ class DefaultHttpMessageConvertersTests {
|
||||
assertThat(customConverter).isEqualTo(jacksonConverter);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldOverrideStringConverters() {
|
||||
var stringConverter = new StringHttpMessageConverter();
|
||||
var converters = HttpMessageConverters.forClient().registerDefaults()
|
||||
.stringMessageConverter(stringConverter).build();
|
||||
|
||||
var actualConverter = findMessageConverter(StringHttpMessageConverter.class, converters);
|
||||
assertThat(actualConverter).isEqualTo(stringConverter);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldConfigureConverter() {
|
||||
var customConverter = new CustomHttpMessageConverter();
|
||||
@@ -271,6 +281,17 @@ class DefaultHttpMessageConvertersTests {
|
||||
assertThat(customConverter).isEqualTo(jacksonConverter);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void shouldOverrideStringConverters() {
|
||||
var stringConverter = new StringHttpMessageConverter();
|
||||
var converters = HttpMessageConverters.forServer().registerDefaults()
|
||||
.stringMessageConverter(stringConverter).build();
|
||||
|
||||
var actualConverter = findMessageConverter(StringHttpMessageConverter.class, converters);
|
||||
assertThat(actualConverter).isEqualTo(stringConverter);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldConfigureConverter() {
|
||||
var customConverter = new CustomHttpMessageConverter();
|
||||
|
||||
Reference in New Issue
Block a user