Stephan Siano created CAMEL-8810:
------------------------------------
Summary: Camel CXF may propagate wrong Content-Length headers
Key: CAMEL-8810
URL: https://issues.apache.org/jira/browse/CAMEL-8810
Project: Camel
Issue Type: Bug
Components: camel-cxf
Affects Versions: 2.15.2, 2.14.2, 2.16.0
Reporter: Stephan Siano
Priority: Minor
In some rare cases camel-cxf may propagate wrong Content-Length HTTP headers in
routing scenarios.
The scenario in question is a simple camel-cxf to camel-cxf scenario with a
request-reply pattern. If the called server does respond with a Content-Length
(not chunked) and the server does not send any HTTP protocol header that is not
filtered (like Content-Length or Content-Type) the headers from the original
server response are forwarded.
If the payload returned by Camel is longer than the payload returned by the
called server (which provided the Content-Length) e.g. because the proxy is
working in PAYLOAD mode and the server uses shorter namespace prefixes for the
SOAP envelope, the Content-Length will be too short and the calling client may
cut off the message.
See the attached unit test for details.
The reason for that is that the original headers get set when copying the
invocation context from the camel exchange. Normally the protocol header map
will be overwritten with the map of filtered headers, so this is not an issue,
however of the map of filtered headers is completely empty this will not
happen. The fix is to remove the copied protocol headers in that case.
The situation will rarely occur in real life because the Server header is there
most of the time, so the list of filtered protocol headers is not empty.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)