diff --git a/flume-ng-core/src/main/java/org/apache/flume/source/http/BLOBHandler.java b/flume-ng-core/src/main/java/org/apache/flume/source/http/BLOBHandler.java index e1891cbbbb..62822857ec 100644 --- a/flume-ng-core/src/main/java/org/apache/flume/source/http/BLOBHandler.java +++ b/flume-ng-core/src/main/java/org/apache/flume/source/http/BLOBHandler.java @@ -18,10 +18,7 @@ package org.apache.flume.source.http; import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import javax.servlet.http.HttpServletRequest; @@ -65,18 +62,13 @@ public List getEvents(HttpServletRequest request) throws Exception { InputStream inputStream = request.getInputStream(); - Map parameters = request.getParameterMap(); - for (String parameter : parameters.keySet()) { - String value = parameters.get(parameter)[0]; + Enumeration parameters = request.getHeaderNames(); + while (parameters.hasMoreElements()){ + String value = parameters.nextElement(); if (LOG.isDebugEnabled() && LogPrivacyUtil.allowLogRawData()) { - LOG.debug("Setting Header [Key, Value] as [{},{}] ", parameter, value); + LOG.debug("Setting Header [Key, Value] as [{},{}] ", request.getHeader(value), value); } - headers.put(parameter, value); - } - - for (String header : mandatoryHeaders) { - Preconditions.checkArgument(headers.containsKey(header), - "Please specify " + header + " parameter in the request."); + headers.put(request.getHeader(value), value); } ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); diff --git a/flume-ng-core/src/test/java/org/apache/flume/source/http/TestBLOBHandler.java b/flume-ng-core/src/test/java/org/apache/flume/source/http/TestBLOBHandler.java index 7d46a78a8d..96db0635e4 100644 --- a/flume-ng-core/src/test/java/org/apache/flume/source/http/TestBLOBHandler.java +++ b/flume-ng-core/src/test/java/org/apache/flume/source/http/TestBLOBHandler.java @@ -52,9 +52,9 @@ public void setUp() { @SuppressWarnings({ "unchecked", "rawtypes" }) @Test public void testCSVData() throws Exception { - Map requestParameterMap = new HashMap(); - requestParameterMap.put("param1", new String[] { "value1" }); - requestParameterMap.put("param2", new String[] { "value2" }); + Map requestHeaders = new HashMap(); + requestHeaders.put("param1", "value1"); + requestHeaders.put("param2", "value2"); HttpServletRequest req = mock(HttpServletRequest.class); final String csvData = "a,b,c"; @@ -63,7 +63,7 @@ public void testCSVData() throws Exception { new ByteArrayInputStream(csvData.getBytes())); when(req.getInputStream()).thenReturn(servletInputStream); - when(req.getParameterMap()).thenReturn(requestParameterMap); + when(req.getParameterMap()).thenReturn(requestHeaders); Context context = mock(Context.class); when( @@ -85,7 +85,7 @@ public void testCSVData() throws Exception { @Test public void testTabData() throws Exception { Map requestParameterMap = new HashMap(); - requestParameterMap.put("param1", new String[] { "value1" }); + requestParameterMap.put("param1", "value1"); HttpServletRequest req = mock(HttpServletRequest.class); final String tabData = "a\tb\tc";