You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2014/07/27 20:22:16 UTC

svn commit: r1613825 - in /axis/axis2/java/rampart/branches/1_6: ./ modules/rampart-core/ modules/rampart-core/src/main/java/org/apache/rampart/handler/ modules/rampart-core/src/main/java/org/apache/rampart/util/ modules/rampart-trust/src/main/java/org...

Author: veithen
Date: Sun Jul 27 18:22:15 2014
New Revision: 1613825

URL: http://svn.apache.org/r1613825
Log:
Merged r1090570, r1180718 and r1240337 to the 1.6 branch.

Modified:
    axis/axis2/java/rampart/branches/1_6/   (props changed)
    axis/axis2/java/rampart/branches/1_6/modules/rampart-core/pom.xml
    axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java
    axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
    axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java

Propchange: axis/axis2/java/rampart/branches/1_6/
------------------------------------------------------------------------------
  Merged /axis/axis2/java/rampart/trunk:r1090570,1180718,1240337

Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-core/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-core/pom.xml?rev=1613825&r1=1613824&r2=1613825&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/1_6/modules/rampart-core/pom.xml (original)
+++ axis/axis2/java/rampart/branches/1_6/modules/rampart-core/pom.xml Sun Jul 27 18:22:15 2014
@@ -76,6 +76,7 @@
         <dependency>
             <groupId>org.apache.ws.commons.axiom</groupId>
             <artifactId>axiom-dom</artifactId>
+            <scope>runtime</scope>
         </dependency>
     </dependencies>
 </project>

Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java?rev=1613825&r1=1613824&r2=1613825&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java (original)
+++ axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java Sun Jul 27 18:22:15 2014
@@ -20,7 +20,6 @@ import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11HeaderBlockImpl;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.HandlerDescription;

Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java?rev=1613825&r1=1613824&r2=1613825&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java (original)
+++ axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java Sun Jul 27 18:22:15 2014
@@ -16,14 +16,15 @@
 
 package org.apache.rampart.util;
 
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
@@ -32,8 +33,6 @@ import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
-import org.apache.axiom.soap.impl.dom.SOAPHeaderBlockImpl;
-import org.apache.axiom.soap.impl.dom.factory.DOMSOAPFactory;
 import org.apache.rampart.handler.WSSHandlerConstants;
 import org.apache.ws.security.WSSecurityException;
 import org.apache.xml.security.utils.XMLUtils;
@@ -147,14 +146,15 @@ public class Axis2Util {
 
                 // Check the namespace and find SOAP version and factory
                 String nsURI = null;
+                OMMetaFactory metaFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
                 SOAPFactory factory;
                 if (env.getNamespace().getNamespaceURI().equals(
                         SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
                     nsURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-                    factory = DOOMAbstractFactory.getSOAP11Factory();
+                    factory = metaFactory.getSOAP11Factory();
                 } else {
                     nsURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-                    factory = DOOMAbstractFactory.getSOAP12Factory();
+                    factory = metaFactory.getSOAP12Factory();
                 }
 
                 StAXSOAPModelBuilder stAXSOAPModelBuilder = new StAXSOAPModelBuilder(
@@ -203,6 +203,18 @@ public class Axis2Util {
 	public static SOAPEnvelope getSOAPEnvelopeFromDOMDocument(Document doc, boolean useDoom)
             throws WSSecurityException {
 
+	    Element documentElement = doc.getDocumentElement();
+	    if (documentElement instanceof SOAPEnvelope) {
+	        SOAPEnvelope env = (SOAPEnvelope)documentElement;
+	        // If the DOM tree already implements the Axiom API and the corresponding
+	        // Axiom implementation is also used as default implementation, then just return
+	        // the SOAPEnvelope directly. Note that this will never be the case for DOOM,
+	        // but may be the case for a non standard Axiom implementation.
+	        if (env.getOMFactory().getMetaFactory() == OMAbstractFactory.getMetaFactory()) {
+	            return env;
+	        }
+	    }
+	    
         if(useDoom) {
             try {
                 //Get processed headers

Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java?rev=1613825&r1=1613824&r2=1613825&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java (original)
+++ axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java Sun Jul 27 18:22:15 2014
@@ -16,9 +16,9 @@
 
 package org.apache.rahas;
 
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.dom.factory.OMDOMFactory;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.util.base64.Base64Utils;
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.context.MessageContext;
@@ -324,8 +324,9 @@ public class RahasData {
             OMElement strElem = validateTargetElem.getFirstChildWithName(new QName(WSConstants.WSSE_NS,
                                                    "SecurityTokenReference"));
             
-            Element elem = (Element)(new StAXOMBuilder(new OMDOMFactory(), 
-                    strElem.getXMLStreamReader()).getDocumentElement());
+            Element elem = (Element)OMXMLBuilderFactory.createStAXOMBuilder(
+                    OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory(),
+                    strElem.getXMLStreamReader()).getDocumentElement();
             
             try {
                 SecurityTokenReference str = new SecurityTokenReference((Element)elem);
@@ -350,8 +351,9 @@ public class RahasData {
             OMElement strElem = renewTargetElem.getFirstChildWithName(new QName(WSConstants.WSSE_NS,
                                                    "SecurityTokenReference"));
             
-            Element elem = (Element)(new StAXOMBuilder(new OMDOMFactory(), 
-                    strElem.getXMLStreamReader()).getDocumentElement());
+            Element elem = (Element)OMXMLBuilderFactory.createStAXOMBuilder(
+                    OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory(),
+                    strElem.getXMLStreamReader()).getDocumentElement();
             
             try {
                 SecurityTokenReference str = new SecurityTokenReference((Element)elem);