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); } } }