You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2016/05/26 21:45:33 UTC
[05/50] [abbrv] cxf git commit: [CXF-6900] More SAAJ fixes
[CXF-6900] More SAAJ fixes
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/2538ae42
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/2538ae42
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/2538ae42
Branch: refs/heads/master-jaxrs-2.1
Commit: 2538ae42fb0c774023deed5264291b2fe6658cb8
Parents: cf8ac10
Author: Daniel Kulp <dk...@apache.org>
Authored: Tue May 17 13:26:31 2016 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Tue May 17 13:26:31 2016 -0400
----------------------------------------------------------------------
.../apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java | 2 +-
.../apache/cxf/binding/soap/saaj/SAAJStreamWriter.java | 10 ++++++++++
.../cxf/ws/security/wss4j/AbstractPolicySecurityTest.java | 5 ++---
.../cxf/ws/security/wss4j/AbstractSecurityTest.java | 8 ++++----
.../cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java | 3 +++
5 files changed, 20 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/2538ae42/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java b/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java
index 74de7a3..d30bf4f 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java
@@ -38,9 +38,9 @@ import org.apache.cxf.common.util.StringUtils;
* location, it will just walk into it instead of creating a new element
*/
public class OverlayW3CDOMStreamWriter extends W3CDOMStreamWriter {
+ protected boolean isOverlaid = true;
List<Boolean> isOverlaidStack = new LinkedList<Boolean>();
- boolean isOverlaid = true;
Boolean textOverlay;
public OverlayW3CDOMStreamWriter(Document document) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/2538ae42/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 d29276c..393a553 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
@@ -40,6 +40,10 @@ public final class SAAJStreamWriter extends OverlayW3CDOMStreamWriter {
public SAAJStreamWriter(SOAPPart part) {
super(part);
this.part = part;
+ Node nd = part.getFirstChild();
+ if (nd == null) {
+ isOverlaid = false;
+ }
}
public SAAJStreamWriter(SOAPPart part, Element current) {
super(part, current);
@@ -69,8 +73,14 @@ public final class SAAJStreamWriter extends OverlayW3CDOMStreamWriter {
if ("Envelope".equals(local)) {
setChild(adjustPrefix(part.getEnvelope(), prefix), false);
adjustPrefix(part.getEnvelope().getHeader(), prefix);
+ adjustPrefix(part.getEnvelope().getBody(), prefix);
+ part.getEnvelope().removeChild(part.getEnvelope().getHeader());
+ part.getEnvelope().removeChild(part.getEnvelope().getBody());
return;
} else if ("Body".equals(local)) {
+ if (part.getEnvelope().getBody() == null) {
+ part.getEnvelope().addBody();
+ }
setChild(adjustPrefix(part.getEnvelope().getBody(), prefix), false);
return;
} else if ("Header".equals(local)) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/2538ae42/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractPolicySecurityTest.java
----------------------------------------------------------------------
diff --git a/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractPolicySecurityTest.java b/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractPolicySecurityTest.java
index 5702b5e..b627081 100644
--- a/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractPolicySecurityTest.java
+++ b/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractPolicySecurityTest.java
@@ -30,7 +30,6 @@ import java.util.concurrent.Executor;
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.soap.Node;
-import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
@@ -405,7 +404,7 @@ public abstract class AbstractPolicySecurityTest extends AbstractSecurityTest {
* @see #getSoapMessageForDom(Document, AssertionInfoMap)
*/
protected SoapMessage getOutSoapMessageForDom(Document doc, AssertionInfoMap aim)
- throws SOAPException {
+ throws Exception {
SoapMessage msg = this.getSoapMessageForDom(doc, aim);
msg.put(SecurityConstants.SIGNATURE_PROPERTIES, "outsecurity.properties");
msg.put(SecurityConstants.ENCRYPT_PROPERTIES, "outsecurity.properties");
@@ -421,7 +420,7 @@ public abstract class AbstractPolicySecurityTest extends AbstractSecurityTest {
}
protected SoapMessage getSoapMessageForDom(Document doc, AssertionInfoMap aim)
- throws SOAPException {
+ throws Exception {
SoapMessage msg = this.getSoapMessageForDom(doc);
if (aim != null) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/2538ae42/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java
----------------------------------------------------------------------
diff --git a/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java b/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java
index e5e531d..38bc2be 100644
--- a/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java
+++ b/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java
@@ -32,17 +32,16 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.soap.MessageFactory;
-import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
-import javax.xml.transform.dom.DOMSource;
import org.w3c.dom.Document;
import org.apache.cxf.binding.soap.Soap11;
import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.saaj.SAAJStreamWriter;
import org.apache.cxf.helpers.DOMUtils.NullResolver;
import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.ExchangeImpl;
@@ -81,10 +80,11 @@ public abstract class AbstractSecurityTest extends AbstractCXFTest {
* Creates a {@link SoapMessage} from the contents of a document.
* @param doc the document containing the SOAP content.
*/
- protected SoapMessage getSoapMessageForDom(Document doc) throws SOAPException {
+ protected SoapMessage getSoapMessageForDom(Document doc) throws Exception {
SOAPMessage saajMsg = MessageFactory.newInstance().createMessage();
SOAPPart part = saajMsg.getSOAPPart();
- part.setContent(new DOMSource(doc));
+ SAAJStreamWriter writer = new SAAJStreamWriter(part);
+ StaxUtils.copy(doc, writer);
saajMsg.saveChanges();
MessageImpl message = new MessageImpl();
http://git-wip-us.apache.org/repos/asf/cxf/blob/2538ae42/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
----------------------------------------------------------------------
diff --git a/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java b/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
index 71e7bb3..879ec0d 100644
--- a/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
+++ b/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
@@ -27,6 +27,8 @@ import java.util.Map;
import java.util.SortedSet;
import java.util.TreeSet;
+import javax.xml.soap.SOAPMessage;
+
import org.w3c.dom.Document;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor;
@@ -37,6 +39,7 @@ import org.apache.cxf.message.Message;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.phase.PhaseInterceptor;
import org.apache.cxf.phase.PhaseInterceptorChain;
+import org.apache.cxf.staxutils.StaxUtils;
import org.apache.cxf.ws.security.wss4j.CryptoCoverageChecker.XPathExpression;
import org.apache.cxf.ws.security.wss4j.CryptoCoverageUtil.CoverageScope;
import org.apache.cxf.ws.security.wss4j.CryptoCoverageUtil.CoverageType;