This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit c52152eb1d9076059ce425f31bccd6e367141542 Author: Claus Ibsen <[email protected]> AuthorDate: Fri Mar 12 14:23:44 2021 +0100 CAMEL-16344: camel-spring-ws - Skip Content-Type as SOAP:ENV response header --- .../spring/ws/filter/impl/BasicMessageFilter.java | 12 +++++++++++- .../filter/impl/HeaderTransformationMessageFilter.java | 17 +++++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilter.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilter.java index 358f275..6a7e2e4 100644 --- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilter.java +++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilter.java @@ -36,6 +36,13 @@ import org.springframework.ws.soap.SoapMessage; */ public class BasicMessageFilter implements MessageFilter { + /** + * Whether a header is valid + */ + protected boolean validHeaderName(String name) { + return !"Content-Type".equalsIgnoreCase(name); + } + @Override public void filterProducer(Exchange exchange, WebServiceMessage response) { if (exchange != null) { @@ -110,8 +117,11 @@ public class BasicMessageFilter implements MessageFilter { headerKeySet.remove(Exchange.BREADCRUMB_ID); for (String name : headerKeySet) { - Object value = headers.get(name); + if (!validHeaderName(name)) { + continue; + } + Object value = headers.get(name); if (value instanceof QName) { soapHeader.addHeaderElement((QName) value); } else { diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/filter/impl/HeaderTransformationMessageFilter.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/filter/impl/HeaderTransformationMessageFilter.java index a3e712b..8366032 100644 --- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/filter/impl/HeaderTransformationMessageFilter.java +++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/filter/impl/HeaderTransformationMessageFilter.java @@ -49,13 +49,17 @@ public class HeaderTransformationMessageFilter implements MessageFilter { private String xslt; private boolean saxon; - /** - * @param xslt - */ public HeaderTransformationMessageFilter(String xslt) { this.xslt = xslt; } + /** + * Whether a header is valid + */ + protected boolean validHeaderName(String name) { + return !"Content-Type".equalsIgnoreCase(name); + } + @Override public void filterProducer(Exchange exchange, WebServiceMessage webServiceMessage) { if (exchange != null) { @@ -99,15 +103,16 @@ public class HeaderTransformationMessageFilter implements MessageFilter { /** * Adding the headers of the message as parameter to the transformer - * - * @param inOrOut - * @param transformer */ private void addParameters(Message inOrOut, Transformer transformer) { Map<String, Object> headers = inOrOut.getHeaders(); for (Map.Entry<String, Object> headerEntry : headers.entrySet()) { String key = headerEntry.getKey(); + if (!validHeaderName(key)) { + continue; + } + // Key's with '$' are not allowed in XSLT if (key != null && !key.startsWith("$")) { transformer.setParameter(key, String.valueOf(headerEntry.getValue()));
