Skip to content

Commit 7d9a089

Browse files
committed
fix application type to be JSON like NettyRequest
1 parent 4894ab8 commit 7d9a089

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

src/main/java/io/fabric8/elasticsearch/plugin/OpenshiftRequestContextFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ public static class OpenshiftRequestContext {
202202
private final String kibanaIndex;
203203
private final String kibanaIndexMode;
204204

205-
protected OpenshiftRequestContext(final String user, final String token, boolean isClusterAdmin,
205+
public OpenshiftRequestContext(final String user, final String token, boolean isClusterAdmin,
206206
Set<String> projects, String kibanaIndex, final String kibanaIndexMode) {
207207
this.user = user;
208208
this.token = token;

src/main/java/io/fabric8/elasticsearch/util/RequestUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,9 @@ public RestRequest modifyRequest(final RestRequest request, OpenshiftRequestCont
186186
final Map<String, List<String>> modifiedHeaders = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
187187
modifiedHeaders.putAll(request.getHeaders());
188188
modifiedHeaders.put(proxyUserHeader, Arrays.asList(context.getUser()));
189+
if(request.header("Content-Type") != null && request.header("Content-Type").toLowerCase().endsWith("json")){
190+
modifiedHeaders.put("Content-Type", Arrays.asList("application/json"));
191+
}
189192
RestRequest modified = new RestRequest(request.getXContentRegistry(), uri, modifiedHeaders) {
190193

191194
@Override
@@ -235,6 +238,7 @@ public Channel getChannel() {
235238
if (uri.contains(defaultKibanaIndex)) {
236239
modified.params().put("index", context.getKibanaIndex());
237240
}
241+
238242
return modified;
239243
}
240244
return request;

src/test/java/io/fabric8/elasticsearch/util/RequestUtilsTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static org.junit.Assert.assertEquals;
2020

2121
import java.util.Arrays;
22+
import java.util.HashSet;
2223
import java.util.List;
2324
import java.util.Map;
2425
import java.util.TreeMap;
@@ -29,10 +30,13 @@
2930
import org.junit.Test;
3031

3132
import io.fabric8.elasticsearch.plugin.ConfigurationSettings;
33+
import io.fabric8.elasticsearch.plugin.OpenshiftRequestContextFactory;
34+
import io.fabric8.elasticsearch.plugin.OpenshiftRequestContextFactory.OpenshiftRequestContext;
3235
import io.fabric8.elasticsearch.plugin.PluginSettings;
3336

3437
public class RequestUtilsTest {
3538

39+
private static final String CONTENT_TYPE = "Content-Type";
3640
private static final String PROXY_HEADER = "aValue";
3741
private static final String USER = "auser";
3842
private RequestUtils util;
@@ -52,5 +56,16 @@ public void testGetUserFromHeader() {
5256

5357
assertEquals(USER, util.getUser(request));
5458
}
59+
60+
@Test
61+
public void testModifyContentType() {
62+
Map<String, List<String>> headers = new TreeMap<String, List<String>>(String.CASE_INSENSITIVE_ORDER);
63+
headers.put(CONTENT_TYPE, Arrays.asList("application/x-ndjson"));
64+
RestRequest request = new TestRestRequest(headers);
65+
66+
OpenshiftRequestContext context = new OpenshiftRequestContextFactory.OpenshiftRequestContext("foo", null, false, new HashSet<>(), null, null);
67+
RestRequest modifyRequest = util.modifyRequest(request, context , null);
68+
assertEquals("application/json", modifyRequest.header(CONTENT_TYPE));
69+
}
5570

5671
}

src/test/java/io/fabric8/elasticsearch/util/TestRestRequest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.List;
2121
import java.util.Map;
2222

23+
import org.elasticsearch.common.bytes.BytesArray;
2324
import org.elasticsearch.common.bytes.BytesReference;
2425
import org.elasticsearch.common.xcontent.NamedXContentRegistry;
2526
import org.elasticsearch.rest.RestRequest;
@@ -50,7 +51,7 @@ public boolean hasContent() {
5051

5152
@Override
5253
public BytesReference content() {
53-
return null;
54+
return new BytesArray("");
5455
}
5556

5657
}

0 commit comments

Comments
 (0)