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