This is an automated email from the ASF dual-hosted git repository.
ppalaga pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new b7f21f2f3cf CAMEL-19843: HTTP/2 pseudo-headers such as :status should
not be propagated from CXF message to Camel message
b7f21f2f3cf is described below
commit b7f21f2f3cf3ef5f1884d74b54632781ea1ecc56
Author: Peter Palaga <[email protected]>
AuthorDate: Wed Sep 6 19:19:47 2023 +0200
CAMEL-19843: HTTP/2 pseudo-headers such as :status should not be
propagated from CXF message to Camel message
---
.../apache/camel/component/cxf/jaxws/DefaultCxfBinding.java | 3 +++
.../camel/component/cxf/jaxws/CxfProducerRouterTest.java | 13 +++++++++++++
2 files changed, 16 insertions(+)
diff --git
a/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/DefaultCxfBinding.java
b/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/DefaultCxfBinding.java
index 13eb2c68b85..f9d35445251 100644
---
a/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/DefaultCxfBinding.java
+++
b/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/DefaultCxfBinding.java
@@ -674,6 +674,9 @@ public class DefaultCxfBinding implements CxfBinding,
HeaderFilterStrategyAware
// SOAPAction header may contain quoted value. Remove
the quotes here.
soapAction =
StringHelper.removeLeadingAndEndingQuotes(soapAction);
camelHeaders.put(SoapBindingConstants.SOAP_ACTION,
soapAction);
+ } else if (entry.getKey().startsWith(":")) {
+ /* Ignore HTTP/2 pseudo headers such as :status */
+ continue;
} else {
LOG.trace("Populate header from CXF header={}
value={}",
entry.getKey(), entry.getValue());
diff --git
a/components/camel-cxf/camel-cxf-soap/src/test/java/org/apache/camel/component/cxf/jaxws/CxfProducerRouterTest.java
b/components/camel-cxf/camel-cxf-soap/src/test/java/org/apache/camel/component/cxf/jaxws/CxfProducerRouterTest.java
index 544b4c348ca..82f9d6dd1e2 100644
---
a/components/camel-cxf/camel-cxf-soap/src/test/java/org/apache/camel/component/cxf/jaxws/CxfProducerRouterTest.java
+++
b/components/camel-cxf/camel-cxf-soap/src/test/java/org/apache/camel/component/cxf/jaxws/CxfProducerRouterTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.cxf.jaxws;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
@@ -152,6 +153,18 @@ public class CxfProducerRouterTest extends
CamelTestSupport {
}
+ @Test
+ public void testIgnorePseudoHeaders() throws Exception {
+ Exchange senderExchange = new DefaultExchange(context,
ExchangePattern.InOut);
+ senderExchange.getIn().setBody(REQUEST_MESSAGE);
+ Exchange exchange = template.send("direct:EndpointB", senderExchange);
+
+ org.apache.camel.Message out = exchange.getMessage();
+ final List<String> pseudoHeaders
+ = out.getHeaders().keySet().stream().filter(key ->
key.startsWith(":")).collect(Collectors.toList());
+ assertTrue(pseudoHeaders.isEmpty(), "Pseudo-headers such as :status
should be filtered out; found: " + pseudoHeaders);
+ }
+
@Test
public void testInvokingSimpleServerWithPayLoadDataFormat() throws
Exception {
Exchange senderExchange = new DefaultExchange(context,
ExchangePattern.InOut);