You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/03/12 14:09:08 UTC
[camel] 01/02: CAMEL-16344: camel-spring-ws - Skip Content-Type as
SOAP:ENV response header
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 <cl...@gmail.com>
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()));