summaryrefslogtreecommitdiffstats
path: root/container-search/src
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2019-01-03 11:04:24 +0000
committerArne Juul <arnej@yahoo-inc.com>2019-01-03 11:04:24 +0000
commitd173be88f1aad7962eddec6ab0a29ebfe0439458 (patch)
treeb68a58a9a65beb93c5dfd5281a5261a17cc05e86 /container-search/src
parent5d9957af203d16c448ca34a9d167e3587b3c7820 (diff)
do minimal parsing of "Content-Type" header
Diffstat (limited to 'container-search/src')
-rw-r--r--container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java17
-rw-r--r--container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java6
2 files changed, 22 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
index 2fd041002cf..0a4ae5a1c27 100644
--- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
+++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
@@ -557,10 +557,25 @@ public class SearchHandler extends LoggingRequestHandler {
return searchChainRegistry;
}
+ static private String getMediaType(HttpRequest request) {
+ String header = request.getHeader(com.yahoo.jdisc.http.HttpHeaders.Names.CONTENT_TYPE);
+ if (header == null) {
+ return "";
+ }
+System.err.println("header is: "+header);
+ int semi = header.indexOf(';');
+ if (semi != -1) {
+ header = header.substring(0, semi);
+System.err.println("header main part is: "+header);
+ }
+ return com.yahoo.text.Lowercase.toLowerCase(header.trim());
+ }
+
private Map<String, String> requestMapFromRequest(HttpRequest request) {
if (request.getMethod() == com.yahoo.jdisc.http.HttpRequest.Method.POST
- && JSON_CONTENT_TYPE.equals(request.getHeader(com.yahoo.jdisc.http.HttpHeaders.Names.CONTENT_TYPE))) {
+ && JSON_CONTENT_TYPE.equals(getMediaType(request)))
+ {
Inspector inspector;
try {
byte[] byteArray = IOUtils.readBytes(request.getData(), 1 << 20);
diff --git a/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java
index e07fbd46845..e0fef7fc3b4 100644
--- a/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java
@@ -494,5 +494,11 @@ public class JSONSearchHandlerTestCase {
}
+ @Test
+ public void testContentTypeParsing() throws Exception {
+ JSONObject json = new JSONObject();
+ json.put("query", "abc");
+ assertOkResult(driver.sendRequest(uri, com.yahoo.jdisc.http.HttpRequest.Method.POST, json.toString(), "Application/JSON; charset=utf-8"), jsonResult);
+ }
}