diff --git a/server-spi-private/pom.xml b/server-spi-private/pom.xml
index 7f051a35b51..47b32c7f75a 100755
--- a/server-spi-private/pom.xml
+++ b/server-spi-private/pom.xml
@@ -92,4 +92,20 @@
+
+
+
+ maven-surefire-plugin
+
+
+
+
+
+
+ -Dfile.encoding=UTF-8
+
+
+
+
+
diff --git a/server-spi-private/src/main/java/org/keycloak/broker/provider/util/SimpleHttp.java b/server-spi-private/src/main/java/org/keycloak/broker/provider/util/SimpleHttp.java
index 49fd82ae5ea..b648cb643c7 100755
--- a/server-spi-private/src/main/java/org/keycloak/broker/provider/util/SimpleHttp.java
+++ b/server-spi-private/src/main/java/org/keycloak/broker/provider/util/SimpleHttp.java
@@ -242,7 +242,7 @@ public class SimpleHttp {
}
private StringEntity getJsonEntity() throws IOException {
- return new StringEntity(JsonSerialization.writeValueAsString(entity));
+ return new StringEntity(JsonSerialization.writeValueAsString(entity), ContentType.getByMimeType(headers.get("Content-Type")));
}
private UrlEncodedFormEntity getFormEntityFromParameter() throws IOException{
diff --git a/server-spi-private/src/test/java/org/keycloak/broker/provider/util/SimpleHttpTest.java b/server-spi-private/src/test/java/org/keycloak/broker/provider/util/SimpleHttpTest.java
index e6311fb3a8a..a39443f59ee 100644
--- a/server-spi-private/src/test/java/org/keycloak/broker/provider/util/SimpleHttpTest.java
+++ b/server-spi-private/src/test/java/org/keycloak/broker/provider/util/SimpleHttpTest.java
@@ -1,15 +1,26 @@
package org.keycloak.broker.provider.util;
import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.message.BasicHttpResponse;
+import org.apache.http.params.HttpParams;
+import org.apache.http.protocol.HttpContext;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.keycloak.common.util.StreamUtil;
import java.io.IOException;
import java.nio.charset.Charset;
@@ -19,6 +30,7 @@ import java.util.Collection;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.fail;
/**
* @author Andrey Khlebnikov
@@ -64,5 +76,102 @@ public final class SimpleHttpTest {
response.setEntity(entity);
return response;
}
+
}
+
+ @RunWith(Parameterized.class)
+ public static final class RequestConsideringEncodingTest {
+ private String value;
+
+ public RequestConsideringEncodingTest(String value) {
+ this.value = value;
+ }
+
+ @Parameters(name = "{index}: requestWithEncoding({0})")
+ public static Collection