You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by as...@apache.org on 2016/04/13 23:13:56 UTC
[1/2] cxf git commit: [CXF-6867] Ensure Envelope and Body element
prefixes are not changed when processing messages without headers
Repository: cxf
Updated Branches:
refs/heads/3.1.x-fixes 4a749e745 -> c7234f413
[CXF-6867] Ensure Envelope and Body element prefixes are not changed when processing messages without headers
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/bbc3ca28
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/bbc3ca28
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/bbc3ca28
Branch: refs/heads/3.1.x-fixes
Commit: bbc3ca287cca8cf982b62fb85c6a2bbc5bb59754
Parents: 4a749e7
Author: Alessio Soldano <as...@redhat.com>
Authored: Wed Apr 13 23:02:56 2016 +0200
Committer: Alessio Soldano <as...@redhat.com>
Committed: Wed Apr 13 23:08:53 2016 +0200
----------------------------------------------------------------------
.../interceptor/ReadHeadersInterceptor.java | 21 ++++++++++++++++++++
.../binding/soap/saaj/SAAJInInterceptor.java | 10 ++++++++++
.../cxf/binding/soap/saaj/SAAJStreamWriter.java | 17 ++--------------
.../apache/cxf/binding/soap/saaj/SAAJUtils.java | 17 ++++++++++++++++
4 files changed, 50 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/bbc3ca28/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java
index 269ef4d..6bfa3a3 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java
@@ -70,6 +70,8 @@ public class ReadHeadersInterceptor extends AbstractSoapInterceptor {
public static final String ENVELOPE_EVENTS = "envelope.events";
public static final String BODY_EVENTS = "body.events";
+ public static final String ENVELOPE_PREFIX = "envelope.prefix";
+ public static final String BODY_PREFIX = "body.prefix";
/**
*
*/
@@ -205,6 +207,8 @@ public class ReadHeadersInterceptor extends AbstractSoapInterceptor {
} else {
message.put(ENVELOPE_EVENTS, processor.getEnvAttributeAndNamespaceEvents());
message.put(BODY_EVENTS, processor.getBodyAttributeAndNamespaceEvents());
+ message.put(ENVELOPE_PREFIX, processor.getEnvelopePrefix());
+ message.put(BODY_PREFIX, processor.getBodyPrefix());
}
if (addNC) {
// add the Body-level declarations
@@ -326,6 +330,8 @@ public class ReadHeadersInterceptor extends AbstractSoapInterceptor {
private Document doc;
private Node parent;
private QName lastStartElementQName;
+ private String envelopePrefix;
+ private String bodyPrefix;
HeadersProcessor(SoapVersion version) {
this.header = version.getHeader().getLocalPart();
@@ -409,6 +415,13 @@ public class ReadHeadersInterceptor extends AbstractSoapInterceptor {
throw new Fault(e);
}
} else {
+ if (ns.equals(lastStartElementQName.getNamespaceURI())) {
+ if (body.equals(lastStartElementQName.getLocalPart())) {
+ bodyPrefix = lastStartElementQName.getPrefix();
+ } else if (envelope.equals(lastStartElementQName.getLocalPart())) {
+ envelopePrefix = lastStartElementQName.getPrefix();
+ }
+ }
events.add(event);
}
} else {
@@ -445,5 +458,13 @@ public class ReadHeadersInterceptor extends AbstractSoapInterceptor {
return Collections.unmodifiableList(envEvents);
}
}
+
+ public String getEnvelopePrefix() {
+ return envelopePrefix;
+ }
+
+ public String getBodyPrefix() {
+ return bodyPrefix;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/bbc3ca28/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
index 51afbf5..516bf89 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
@@ -193,6 +193,10 @@ public class SAAJInInterceptor extends AbstractSoapInterceptor {
StaxUtils.copy(node, new SAAJStreamWriter(part));
} else {
SOAPEnvelope env = soapMessage.getSOAPPart().getEnvelope();
+ if (node == null) {
+ adjustPrefixes(env, (String)message.get(ReadHeadersInterceptor.ENVELOPE_PREFIX),
+ (String)message.get(ReadHeadersInterceptor.BODY_PREFIX));
+ }
List<XMLEvent> events = (List<XMLEvent>)message.get(ReadHeadersInterceptor.ENVELOPE_EVENTS);
applyEvents(events, env);
SOAPBody body = soapMessage.getSOAPBody();
@@ -258,6 +262,12 @@ public class SAAJInInterceptor extends AbstractSoapInterceptor {
.getVersion().getSender());
}
}
+
+ private static void adjustPrefixes(SOAPEnvelope env, String envPrefix, String bodyPrefix) throws SOAPException {
+ SAAJUtils.adjustPrefix(env, envPrefix);
+ SAAJUtils.adjustPrefix(env.getBody(), bodyPrefix);
+ SAAJUtils.adjustPrefix(env.getHeader(), envPrefix);
+ }
private static void applyEvents(List<XMLEvent> events, SOAPElement el) throws SOAPException {
if (events != null) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/bbc3ca28/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
index f96a14d..14b5c2e 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJStreamWriter.java
@@ -32,6 +32,8 @@ import org.w3c.dom.Node;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.staxutils.OverlayW3CDOMStreamWriter;
+import static org.apache.cxf.binding.soap.saaj.SAAJUtils.adjustPrefix;
+
public final class SAAJStreamWriter extends OverlayW3CDOMStreamWriter {
private final SOAPPart part;
@@ -44,21 +46,6 @@ public final class SAAJStreamWriter extends OverlayW3CDOMStreamWriter {
this.part = part;
}
- private SOAPElement adjustPrefix(SOAPElement e, String prefix) {
- if (prefix == null) {
- prefix = "";
- }
- try {
- String s = e.getPrefix();
- if (!prefix.equals(s)) {
- e.setPrefix(prefix);
- e.removeNamespaceDeclaration(s);
- }
- } catch (Throwable t) {
- //likely old old version of SAAJ, we'll just try our best
- }
- return e;
- }
protected void adjustOverlaidNode(Node nd2, String pfx) {
String namespace = nd2.getNamespaceURI();
try {
http://git-wip-us.apache.org/repos/asf/cxf/blob/bbc3ca28/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJUtils.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJUtils.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJUtils.java
index 78702a3..89cb7f7 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJUtils.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJUtils.java
@@ -21,6 +21,7 @@ package org.apache.cxf.binding.soap.saaj;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFault;
import javax.xml.soap.SOAPHeader;
@@ -66,4 +67,20 @@ public final class SAAJUtils {
}
}
+
+ public static SOAPElement adjustPrefix(SOAPElement e, String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+ try {
+ String s = e.getPrefix();
+ if (!prefix.equals(s)) {
+ e.setPrefix(prefix);
+ e.removeNamespaceDeclaration(s);
+ }
+ } catch (Throwable t) {
+ //likely old old version of SAAJ, we'll just try our best
+ }
+ return e;
+ }
}
[2/2] cxf git commit: Recording .gitmergeinfo Changes
Posted by as...@apache.org.
Recording .gitmergeinfo Changes
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/c7234f41
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/c7234f41
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/c7234f41
Branch: refs/heads/3.1.x-fixes
Commit: c7234f41345c6e051213a83460ba210e677389da
Parents: bbc3ca2
Author: Alessio Soldano <as...@redhat.com>
Authored: Wed Apr 13 23:12:54 2016 +0200
Committer: Alessio Soldano <as...@redhat.com>
Committed: Wed Apr 13 23:12:54 2016 +0200
----------------------------------------------------------------------
.gitmergeinfo | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/c7234f41/.gitmergeinfo
----------------------------------------------------------------------
diff --git a/.gitmergeinfo b/.gitmergeinfo
index 241bd31..aff70a9 100644
--- a/.gitmergeinfo
+++ b/.gitmergeinfo
@@ -53,6 +53,7 @@ M 0222768baf6b60742c4a8332308edf2be0f4a2e4
M 0578e16146527b0782530c40ba2db17531756d96
M 1184e08f0d1c40c754e39fd5d6340d1057fbdd17
M 1afeea8bdc0ef96df1d52ea343957dc396723f8c
+M 26edcd457ea507075a4c82e2787f11f11a432876
M 2e8219cf3d047abc3a7e2611bf284aadbc20b7d6
M 386805560479b35276d88605c5acf805e3004aa5
M 39c772a0764b323f98ab58e00345f4fca924c425