Camel HTTP binding incorrectly filters out the headers
------------------------------------------------------

                 Key: CAMEL-1977
                 URL: https://issues.apache.org/activemq/browse/CAMEL-1977
             Project: Apache Camel
          Issue Type: Bug
          Components: camel-http
    Affects Versions: 2.0.0
            Reporter: Ivan S. Dubrov
         Attachments: http-header-filter-case-insensitive.patch

Camel does not filter out internal headers when creating HTTP response. The 
internal headers like "CamelBeanMultiParameterArray" occur in HTTP response.


The reason is that in the following piece of code (from 
DefaultHttpBinding.java, around line 157):
{code}
        for (String key : message.getHeaders().keySet()) {
            String value = message.getHeader(key, String.class);
            if (headerFilterStrategy != null
                    && !headerFilterStrategy.applyFilterToCamelHeaders(key, 
value, exchange)) {
                response.setHeader(key, value);
            }
        }
{code}

the "key" returned is lowercase, even in case the real header is 
"CamelBeanMultiParameterArray" (because CaseInsensitiveMap is used, which turns 
all keys to lowercase). Since pattern match in DefaultHeaderFilterStrategy is 
case-sensitive, the header is not filter out when filling the response headers.

The suggested solution is to make pattern case-insensitive.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to