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() {
CharacterEncodingFilter filter = new OrderedCharacterEncodingFilter();
filter.setEncoding(this.httpEncodingProperties.getCharset().name());
filter.setForceEncoding(this.httpEncodingProperties.isForce());
filter.setForceRequestEncoding(this.httpEncodingProperties.isForce());
return filter;
}

View File

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