Browse Source

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
pull/5864/head
Stephane Nicoll 10 years ago
parent
commit
428a10a7d7
  1. 2
      spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfiguration.java
  2. 9
      spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfigurationTests.java

2
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfiguration.java

@ -50,7 +50,7 @@ public class HttpEncodingAutoConfiguration { @@ -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;
}

9
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfigurationTests.java

@ -103,11 +103,10 @@ public class HttpEncodingAutoConfigurationTests { @@ -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) {

Loading…
Cancel
Save