diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2019-01-03 11:04:24 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2019-01-03 11:04:24 +0000 |
commit | d173be88f1aad7962eddec6ab0a29ebfe0439458 (patch) | |
tree | b68a58a9a65beb93c5dfd5281a5261a17cc05e86 /container-search/src | |
parent | 5d9957af203d16c448ca34a9d167e3587b3c7820 (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.java | 17 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java | 6 |
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); + } } |