You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2016/05/23 17:47:23 UTC

[10/11] cxf git commit: [CXF-6900, CXF-6908] More fixes for namespace issues with decrypted faults and adding faults to SAAJ envelopes

[CXF-6900, CXF-6908] More fixes for namespace issues with decrypted faults and adding faults to SAAJ envelopes


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/78222f96
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/78222f96
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/78222f96

Branch: refs/heads/3.1.x-fixes
Commit: 78222f96802e321dab8a6c53373f8cda77be6f0e
Parents: ba6c3d4
Author: Daniel Kulp <dk...@apache.org>
Authored: Mon May 23 12:21:56 2016 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Mon May 23 13:09:37 2016 -0400

----------------------------------------------------------------------
 .../cxf/binding/soap/saaj/SAAJStreamWriter.java | 24 ++++++++++++++++++++
 rt/ws/security/pom.xml                          |  5 ++++
 .../cxf/ws/security/wss4j/StaxSerializer.java   |  2 +-
 .../systest/ws/security/SecurityPolicyTest.java |  2 --
 4 files changed, 30 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/78222f96/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 185079b..8c13b1e 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
@@ -18,6 +18,8 @@
  */
 package org.apache.cxf.binding.soap.saaj;
 
+import java.util.Iterator;
+
 import javax.xml.namespace.QName;
 import javax.xml.soap.SOAPBody;
 import javax.xml.soap.SOAPElement;
@@ -26,6 +28,7 @@ import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPFault;
 import javax.xml.soap.SOAPHeader;
 import javax.xml.soap.SOAPPart;
+import javax.xml.stream.XMLStreamException;
 
 import org.w3c.dom.DocumentFragment;
 import org.w3c.dom.Element;
@@ -33,9 +36,11 @@ import org.w3c.dom.Node;
 
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.staxutils.OverlayW3CDOMStreamWriter;
+import org.apache.cxf.staxutils.W3CNamespaceContext;
 
 import static org.apache.cxf.binding.soap.saaj.SAAJUtils.adjustPrefix;
 
+
 public final class SAAJStreamWriter extends OverlayW3CDOMStreamWriter {
     private final SOAPPart part;
     private final SOAPEnvelope envelope;
@@ -69,6 +74,25 @@ public final class SAAJStreamWriter extends OverlayW3CDOMStreamWriter {
         isOverlaid = false;
     }
     
+    @Override
+    public String getPrefix(String nsuri) throws XMLStreamException {
+        if (isOverlaid && part != null && getCurrentNode() == null) {
+            Node nd = part.getFirstChild();
+            while (nd != null) {
+                if (nd instanceof Element) {
+                    Iterator<String> it = new W3CNamespaceContext((Element)nd).getPrefixes(nsuri);
+                    if (it.hasNext()) {
+                        return it.next();
+                    } else {
+                        nd = null;
+                    }
+                } else {
+                    nd = nd.getNextSibling();
+                }
+            }
+        }
+        return super.getPrefix(nsuri);
+    }
     private String getEnvelopeURI() throws SOAPException {
         if (uri == null) {
             uri = getEnvelope().getElementName().getURI();

http://git-wip-us.apache.org/repos/asf/cxf/blob/78222f96/rt/ws/security/pom.xml
----------------------------------------------------------------------
diff --git a/rt/ws/security/pom.xml b/rt/ws/security/pom.xml
index 990fbf4..7172d4d 100644
--- a/rt/ws/security/pom.xml
+++ b/rt/ws/security/pom.xml
@@ -79,6 +79,11 @@
             <optional>true</optional>
         </dependency>
         <dependency>
+            <groupId>org.codehaus.woodstox</groupId>
+            <artifactId>woodstox-core-asl</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
             <groupId>net.sf.ehcache</groupId>
             <artifactId>ehcache</artifactId>
             <version>${cxf.ehcache.version}</version>

http://git-wip-us.apache.org/repos/asf/cxf/blob/78222f96/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
----------------------------------------------------------------------
diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
index 3acb598..6927500 100644
--- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
+++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
@@ -95,7 +95,7 @@ public class StaxSerializer extends AbstractSerializer {
             }
             return true;
         } catch (Throwable t) {
-            t.printStackTrace();
+            //ignore, not much we can do but hope the decrypted XML is stand alone ok 
         }
         return false;
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/78222f96/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
----------------------------------------------------------------------
diff --git a/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java b/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
index 4cd7b66..fb0eea0 100644
--- a/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
+++ b/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
@@ -68,7 +68,6 @@ import org.example.contract.doubleit.DoubleItPortTypeHeader;
 import org.example.schema.doubleit.DoubleIt;
 
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 public class SecurityPolicyTest extends AbstractBusClientServerTestBase  {
@@ -702,7 +701,6 @@ public class SecurityPolicyTest extends AbstractBusClientServerTestBase  {
     }
     
     @Test
-    @Ignore("CXF-6908")
     public void testFault() throws Exception {
         SpringBusFactory bf = new SpringBusFactory();