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 2011/01/20 23:53:35 UTC

svn commit: r1061558 - in /axis/axis2/java/core/trunk/modules: addressing/test/org/apache/axis2/handlers/addressing/ addressing/test/org/apache/axis2/handlers/util/ kernel/src/org/apache/axis2/builder/

Author: veithen
Date: Thu Jan 20 22:53:34 2011
New Revision: 1061558

URL: http://svn.apache.org/viewvc?rev=1061558&view=rev
Log:
* Replaced some references to StAXSOAPModelBuilder by the new API introduced in r1060995.
* Some clean up of the addressing tests.

Modified:
    axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java
    axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java
    axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java
    axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java
    axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/util/TestUtil.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java

Modified: axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java?rev=1061558&r1=1061557&r2=1061558&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java (original)
+++ axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java Thu Jan 20 22:53:34 2011
@@ -23,7 +23,6 @@ import junit.framework.TestCase;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.AddressingConstants;
@@ -36,8 +35,6 @@ import java.util.List;
 
 public class AddressingInFaultHandlerTest extends TestCase {
 
-    TestUtil testUtil = new TestUtil();
-
     /** @param testName  */
     public AddressingInFaultHandlerTest(String testName) {
         super(testName);
@@ -82,8 +79,7 @@ public class AddressingInFaultHandlerTes
     private AxisFault getFaultForTest(String testName, boolean isSOAP11) throws Exception {
         String testfile =
                 "fault-messages/" + (isSOAP11 ? "soap11" : "soap12") + "/" + testName + ".xml";
-        StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder(testfile);
-        SOAPEnvelope envelope = ((SOAPEnvelope)omBuilder.getDocumentElement());
+        SOAPEnvelope envelope = TestUtil.getSOAPEnvelope(testfile);
         MessageContext msgContext = new MessageContext();
         msgContext.setConfigurationContext(
                 ConfigurationContextFactory.createEmptyConfigurationContext());

Modified: axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java?rev=1061558&r1=1061557&r2=1061558&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java (original)
+++ axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java Thu Jan 20 22:53:34 2011
@@ -24,7 +24,6 @@ import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.soap.RolePlayer;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.AddressingConstants;
@@ -47,7 +46,6 @@ public abstract class AddressingInHandle
     private static Log log = LogFactory.getLog(AddressingInHandlerTestBase.class);
     AddressingInHandler inHandler;
     String addressingNamespace;
-    TestUtil testUtil = new TestUtil();
     String testFileName = "soapmessage.xml";
 
     String versionDirectory;
@@ -68,8 +66,7 @@ public abstract class AddressingInHandle
     protected void basicExtractAddressingInformationFromHeaders(String testMessagePath,
                                                                 MessageContext mc)
             throws Exception {
-        StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder(testMessagePath);
-        SOAPEnvelope envelope = (SOAPEnvelope)omBuilder.getDocumentElement();
+        SOAPEnvelope envelope = TestUtil.getSOAPEnvelope(testMessagePath);
         mc.setEnvelope(envelope);
         inHandler.invoke(mc);
     }

Modified: axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java?rev=1061558&r1=1061557&r2=1061558&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java (original)
+++ axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java Thu Jan 20 22:53:34 2011
@@ -23,12 +23,12 @@ import junit.framework.TestCase;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.OMNamespaceImpl;
 import org.apache.axiom.om.impl.llom.util.XMLComparator;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPHeaderBlock;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.addressing.RelatesTo;
@@ -52,7 +52,6 @@ import java.util.List;
 public class AddressingOutHandlerTest extends XMLTestCase implements AddressingConstants {
     private AddressingOutHandler outHandler;
     private MessageContext msgCtxt;
-    private TestUtil testUtil;
 
     public AddressingOutHandlerTest(String testName) {
         super(testName);
@@ -61,7 +60,6 @@ public class AddressingOutHandlerTest ex
     protected void setUp() throws Exception {
         super.setUp();
         outHandler = new AddressingOutHandler();
-        testUtil = new TestUtil();
 
     }
 
@@ -106,7 +104,7 @@ public class AddressingOutHandlerTest ex
 
         outHandler.invoke(msgCtxt);
 
-        StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder("eprTest.xml");
+        OMXMLParserWrapper omBuilder = TestUtil.getOMBuilder("eprTest.xml");
 
         XMLUnit.setIgnoreWhitespace(true);
         assertXMLEqual(omBuilder.getDocumentElement().toString(), defaultEnvelope.toString());
@@ -150,7 +148,7 @@ public class AddressingOutHandlerTest ex
 
         XMLUnit.setIgnoreWhitespace(true);
         assertXMLEqual(msgCtxt.getEnvelope().toString(),
-                testUtil.getOMBuilder("OutHandlerTest.xml")
+                TestUtil.getOMBuilder("OutHandlerTest.xml")
                         .getDocumentElement().toString());
     }
 
@@ -194,7 +192,7 @@ public class AddressingOutHandlerTest ex
 
         XMLUnit.setIgnoreWhitespace(true);
         assertXMLEqual(msgCtxt.getEnvelope().toString(),
-                testUtil.getOMBuilder("mustUnderstandTest.xml")
+                TestUtil.getOMBuilder("mustUnderstandTest.xml")
                         .getDocumentElement().toString());
     }
 
@@ -238,7 +236,7 @@ public class AddressingOutHandlerTest ex
 
         XMLUnit.setIgnoreWhitespace(true);
         assertXMLEqual(msgCtxt.getEnvelope().toString(),
-                testUtil.getOMBuilder("soap11roleTest.xml").getDocumentElement().toString());
+                TestUtil.getOMBuilder("soap11roleTest.xml").getDocumentElement().toString());
     }
 
     public void testSOAP12RoleSupport() throws Exception {
@@ -281,7 +279,7 @@ public class AddressingOutHandlerTest ex
 
         XMLUnit.setIgnoreWhitespace(true);
         assertXMLEqual(msgCtxt.getEnvelope().toString(),
-                testUtil.getOMBuilder("soap12roleTest.xml")
+                TestUtil.getOMBuilder("soap12roleTest.xml")
                         .getDocumentElement().toString());
     }
 
@@ -420,7 +418,7 @@ public class AddressingOutHandlerTest ex
         outHandler.invoke(msgCtxt);
 
         XMLUnit.setIgnoreWhitespace(true);
-        assertXMLEqual(msgCtxt.getEnvelope().toString(), testUtil
+        assertXMLEqual(msgCtxt.getEnvelope().toString(), TestUtil
                 .getOMBuilder("addressingDisabledTest.xml")
                 .getDocumentElement().toString());   
     }
@@ -446,7 +444,7 @@ public class AddressingOutHandlerTest ex
         outHandler.invoke(msgCtxt);
 
         XMLUnit.setIgnoreWhitespace(true);
-        assertXMLEqual(msgCtxt.getEnvelope().toString(), testUtil
+        assertXMLEqual(msgCtxt.getEnvelope().toString(), TestUtil
                 .getOMBuilder("addressingEnabledTest.xml")
                 .getDocumentElement().toString());   
     }
@@ -472,7 +470,7 @@ public class AddressingOutHandlerTest ex
         outHandler.invoke(msgCtxt);
 
         XMLUnit.setIgnoreWhitespace(true);
-        assertXMLEqual(msgCtxt.getEnvelope().toString(), testUtil
+        assertXMLEqual(msgCtxt.getEnvelope().toString(), TestUtil
                 .getOMBuilder("withOptionalHeadersTest.xml")
                 .getDocumentElement().toString());   
     }
@@ -498,7 +496,7 @@ public class AddressingOutHandlerTest ex
         outHandler.invoke(msgCtxt);
 
         XMLUnit.setIgnoreWhitespace(true);
-        assertXMLEqual(msgCtxt.getEnvelope().toString(), testUtil
+        assertXMLEqual(msgCtxt.getEnvelope().toString(), TestUtil
                 .getOMBuilder("addressingEnabledTest.xml")
                 .getDocumentElement().toString());   
     }
@@ -529,7 +527,7 @@ public class AddressingOutHandlerTest ex
         outHandler.invoke(msgCtxt);
 
         XMLUnit.setIgnoreWhitespace(true);
-        assertXMLEqual(msgCtxt.getEnvelope().toString(), testUtil
+        assertXMLEqual(msgCtxt.getEnvelope().toString(), TestUtil
                 .getOMBuilder("addressingDisabledTest.xml")
                 .getDocumentElement().toString());
     }
@@ -562,7 +560,7 @@ public class AddressingOutHandlerTest ex
         outHandler.invoke(msgCtxt);
 
         XMLUnit.setIgnoreWhitespace(true);
-        assertXMLEqual(msgCtxt.getEnvelope().toString(), testUtil
+        assertXMLEqual(msgCtxt.getEnvelope().toString(), TestUtil
                 .getOMBuilder("addressingEnabledTest.xml")
                 .getDocumentElement().toString());   
     }
@@ -595,7 +593,7 @@ public class AddressingOutHandlerTest ex
         outHandler.invoke(msgCtxt);
 
         XMLUnit.setIgnoreWhitespace(true);
-        assertXMLEqual(msgCtxt.getEnvelope().toString(), testUtil
+        assertXMLEqual(msgCtxt.getEnvelope().toString(), TestUtil
                 .getOMBuilder("withOptionalHeadersTest.xml")
                 .getDocumentElement().toString());   
     }
@@ -628,7 +626,7 @@ public class AddressingOutHandlerTest ex
         outHandler.invoke(msgCtxt);
 
         XMLUnit.setIgnoreWhitespace(true);
-        assertXMLEqual(msgCtxt.getEnvelope().toString(), testUtil
+        assertXMLEqual(msgCtxt.getEnvelope().toString(), TestUtil
                 .getOMBuilder("addressingEnabledTest.xml")
                 .getDocumentElement().toString());   
     }

Modified: axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java?rev=1061558&r1=1061557&r2=1061558&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java (original)
+++ axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java Thu Jan 20 22:53:34 2011
@@ -20,7 +20,6 @@
 package org.apache.axis2.handlers.addressing;
 
 import junit.framework.TestCase;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.context.ConfigurationContext;
@@ -44,7 +43,6 @@ public class AddressingValidationHandler
     AddressingValidationHandler validationHandler = new AddressingValidationHandler();
     String addressingNamespace = AddressingConstants.Final.WSA_NAMESPACE;
     String versionDirectory = "final";
-    TestUtil testUtil = new TestUtil();
 
     protected MessageContext testMessageWithOmittedHeaders(String testName) throws Exception {
         return testAddressingMessage("omitted-header-messages", testName + "Message.xml");
@@ -56,8 +54,7 @@ public class AddressingValidationHandler
 
         MessageContext mc = new MessageContext();
         mc.setConfigurationContext(ConfigurationContextFactory.createEmptyConfigurationContext());
-        StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder(testfile);
-        mc.setEnvelope(omBuilder.getSOAPEnvelope());
+        mc.setEnvelope(TestUtil.getSOAPEnvelope(testfile));
 
         inHandler.invoke(mc);
 
@@ -161,8 +158,7 @@ public class AddressingValidationHandler
         response.setOperationContext(opContext);
         
         // Invoke the in handler for a response message without addressing headers
-        StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder("addressingDisabledTest.xml");
-        response.setEnvelope(omBuilder.getSOAPEnvelope());
+        response.setEnvelope(TestUtil.getSOAPEnvelope("addressingDisabledTest.xml"));
         inHandler.invoke(response);
         
         // Check an exception is thrown by the validation handler because the client

Modified: axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/util/TestUtil.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/util/TestUtil.java?rev=1061558&r1=1061557&r2=1061558&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/util/TestUtil.java (original)
+++ axis/axis2/java/core/trunk/modules/addressing/test/org/apache/axis2/handlers/util/TestUtil.java Thu Jan 20 22:53:34 2011
@@ -19,32 +19,32 @@
 
 package org.apache.axis2.handlers.util;
 
-import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.soap.SOAPEnvelope;
 
-import javax.xml.stream.XMLStreamReader;
 import java.io.File;
-import java.io.FileReader;
+import java.io.FileInputStream;
 
 public class TestUtil {
+    private TestUtil() {}
 
     protected static final String IN_FILE_NAME = "soapmessage.xml";
-    protected StAXSOAPModelBuilder builder;
-    protected String testResourceDir = System.getProperty("basedir", ".") + "/" + "test-resources";
+    protected static String testResourceDir = System.getProperty("basedir", ".") + "/" + "test-resources";
 
 
-    public StAXSOAPModelBuilder getOMBuilder(String fileName) throws Exception {
+    public static OMXMLParserWrapper getOMBuilder(String fileName) throws Exception {
         if ("".equals(fileName) || fileName == null) {
             fileName = IN_FILE_NAME;
         }
-        XMLStreamReader parser = StAXUtils
-                .createXMLStreamReader(
-                        new FileReader(getTestResourceFile(fileName)));
-        builder = new StAXSOAPModelBuilder(parser, null);
-        return builder;
+        return OMXMLBuilderFactory.createSOAPModelBuilder(new FileInputStream(getTestResourceFile(fileName)), null);
+    }
+    
+    public static SOAPEnvelope getSOAPEnvelope(String fileName) throws Exception {
+        return (SOAPEnvelope)getOMBuilder(fileName).getDocumentElement();
     }
 
-    protected File getTestResourceFile(String relativePath) {
+    protected static File getTestResourceFile(String relativePath) {
         return new File(testResourceDir, relativePath);
     }
 }

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java?rev=1061558&r1=1061557&r2=1061558&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java Thu Jan 20 22:53:34 2011
@@ -20,18 +20,14 @@
 package org.apache.axis2.builder;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.util.StAXParserConfiguration;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.util.DetachableInputStream;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.MessageContext;
 
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PushbackInputStream;
@@ -40,7 +36,6 @@ public class SOAPBuilder implements Buil
 
     public OMElement processDocument(InputStream inputStream, String contentType,
                                      MessageContext messageContext) throws AxisFault {
-        XMLStreamReader streamReader;
         try {
             String charSetEncoding = (String) messageContext
                     .getProperty(Constants.Configuration.CHARACTER_SET_ENCODING);
@@ -55,16 +50,10 @@ public class SOAPBuilder implements Buil
             PushbackInputStream pis = BuilderUtil.getPushbackInputStream(is);
             String actualCharSetEncoding = BuilderUtil.getCharSetEncoding(pis, charSetEncoding);
             
-            // Get the XMLStreamReader for this input stream.
-            // Note: StAXSOAPModelBuilder will trigger an exception when it encounters a DTD event.
-            //       However, with StAX implementations other than Woodstox, this may already be
-            //       too late. For these parsers, additional settings may be required. We let
-            //       the StAX dialect detector in Axiom apply the necessary configuration.
-            //       See also AXIS2-4450.
-            streamReader = StAXUtils.createXMLStreamReader(StAXParserConfiguration.SOAP, pis,
+            // createSOAPModelBuilder takes care of configuring the underlying parser to
+            // avoid the security issue described in CVE-2010-1632
+            OMXMLParserWrapper builder = OMXMLBuilderFactory.createSOAPModelBuilder(pis,
                     actualCharSetEncoding);
-
-            StAXBuilder builder = new StAXSOAPModelBuilder(streamReader);
             SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
             BuilderUtil
                     .validateSOAPVersion(BuilderUtil.getEnvelopeNamespace(contentType), envelope);
@@ -73,8 +62,6 @@ public class SOAPBuilder implements Buil
             return envelope;
         } catch (IOException e) {
             throw AxisFault.makeFault(e);
-        } catch (XMLStreamException e) {
-            throw AxisFault.makeFault(e);
         }
     }
 }