From 428a10a7d77b15f6e05060ccc018ed4e2b81c912 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 3 May 2016 17:24:57 +0200 Subject: [PATCH] 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 --- .../autoconfigure/web/HttpEncodingAutoConfiguration.java | 2 +- .../web/HttpEncodingAutoConfigurationTests.java | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfiguration.java index e1f443078f..eade4b54df 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfiguration.java @@ -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; } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfigurationTests.java index 1a89565a88..c892d58a82 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfigurationTests.java +++ b/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, - 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) {