Only force request encoding

A recent Spring Framework change in `CharacterEncodingFilter` allows to
configure the force flag separately for requests and responses. This
commit enables the flag only for requests which should provide a better
default with binary content.

Closes gh-5459
This commit is contained in:
Stephane Nicoll 2016-05-03 17:24:57 +02:00
parent f8a4459aa1
commit 428a10a7d7
2 changed files with 5 additions and 6 deletions

View File

@ -50,7 +50,7 @@ public class HttpEncodingAutoConfiguration {
public CharacterEncodingFilter characterEncodingFilter() { public CharacterEncodingFilter characterEncodingFilter() {
CharacterEncodingFilter filter = new OrderedCharacterEncodingFilter(); CharacterEncodingFilter filter = new OrderedCharacterEncodingFilter();
filter.setEncoding(this.httpEncodingProperties.getCharset().name()); filter.setEncoding(this.httpEncodingProperties.getCharset().name());
filter.setForceEncoding(this.httpEncodingProperties.isForce()); filter.setForceRequestEncoding(this.httpEncodingProperties.isForce());
return filter; return filter;
} }

View File

@ -103,11 +103,10 @@ public class HttpEncodingAutoConfigurationTests {
} }
private void assertCharacterEncodingFilter(CharacterEncodingFilter actual, private void assertCharacterEncodingFilter(CharacterEncodingFilter actual,
String encoding, boolean forceEncoding) { String encoding, boolean forceRequestEncoding) {
DirectFieldAccessor accessor = new DirectFieldAccessor(actual); assertThat(actual.getEncoding()).isEqualTo(encoding);
assertThat(accessor.getPropertyValue("encoding")).as("Wrong encoding") assertThat(actual.isForceRequestEncoding()).isEqualTo(forceRequestEncoding);
.isEqualTo(encoding); assertThat(actual.isForceResponseEncoding()).isFalse();
assertThat(accessor.getPropertyValue("forceEncoding")).isEqualTo(forceEncoding);
} }
private void load(Class<?> config, String... environment) { private void load(Class<?> config, String... environment) {