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 {
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;
} }

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

@ -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) {

Loading…
Cancel
Save