diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/SaajWss4jMessageInterceptorSignTest.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/SaajWss4jMessageInterceptorSignTest.java index b0c63a88..f0c8c1c5 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/SaajWss4jMessageInterceptorSignTest.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/SaajWss4jMessageInterceptorSignTest.java @@ -46,10 +46,10 @@ public class SaajWss4jMessageInterceptorSignTest extends Wss4jMessageInterceptor interceptor.setEnableSignatureConfirmation(false); interceptor.setSecurementPassword("123456"); interceptor.setSecurementUsername("rsaKey"); - SOAPMessage saajMessage = messageFactory.createMessage(); + SOAPMessage saajMessage = saajSoap11MessageFactory.createMessage(); transformer.transform(new StringSource(PAYLOAD), new DOMResult(saajMessage.getSOAPBody())); SoapMessage message = new SaajSoapMessage(saajMessage); - MessageContext messageContext = new DefaultMessageContext(message, new SaajSoapMessageFactory(messageFactory)); + MessageContext messageContext = new DefaultMessageContext(message, new SaajSoapMessageFactory(saajSoap11MessageFactory)); interceptor.secureMessage(message, messageContext); @@ -68,9 +68,9 @@ public class SaajWss4jMessageInterceptorSignTest extends Wss4jMessageInterceptor mimeHeaders.addHeader("Content-Type", "text/xml"); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); - SOAPMessage signed = messageFactory.createMessage(mimeHeaders, bis); + SOAPMessage signed = saajSoap11MessageFactory.createMessage(mimeHeaders, bis); message = new SaajSoapMessage(signed); - messageContext = new DefaultMessageContext(message, new SaajSoapMessageFactory(messageFactory)); + messageContext = new DefaultMessageContext(message, new SaajSoapMessageFactory(saajSoap11MessageFactory)); interceptor.validateMessage(message, messageContext); } diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jInterceptorTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jInterceptorTestCase.java index 5f441dea..101ef328 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jInterceptorTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jInterceptorTestCase.java @@ -25,9 +25,9 @@ import org.springframework.ws.soap.security.WsSecurityValidationException; public abstract class Wss4jInterceptorTestCase extends Wss4jTestCase { public void testhandleRequest() throws Exception { - SoapMessage request = loadMessage("empty-soap.xml"); + SoapMessage request = loadSoap11Message("empty-soap.xml"); final Object requestMessage = getMessage(request); - SoapMessage validatedRequest = loadMessage("empty-soap.xml"); + SoapMessage validatedRequest = loadSoap11Message("empty-soap.xml"); final Object validatedRequestMessage = getMessage(validatedRequest); Wss4jSecurityInterceptor interceptor = new Wss4jSecurityInterceptor() { protected void secureMessage(SoapMessage soapMessage, MessageContext messageContext) @@ -41,13 +41,13 @@ public abstract class Wss4jInterceptorTestCase extends Wss4jTestCase { setMessage(soapMessage, validatedRequestMessage); } }; - MessageContext context = new DefaultMessageContext(request, getMessageFactory()); + MessageContext context = new DefaultMessageContext(request, getSoap11MessageFactory()); interceptor.handleRequest(context, null); assertEquals("Invalid request", validatedRequestMessage, getMessage((SoapMessage) context.getRequest())); } public void testhandleResponse() throws Exception { - SoapMessage securedResponse = loadMessage("empty-soap.xml"); + SoapMessage securedResponse = loadSoap11Message("empty-soap.xml"); final Object securedResponseMessage = getMessage(securedResponse); Wss4jSecurityInterceptor interceptor = new Wss4jSecurityInterceptor() { @@ -63,8 +63,8 @@ public abstract class Wss4jInterceptorTestCase extends Wss4jTestCase { } }; - SoapMessage request = loadMessage("empty-soap.xml"); - MessageContext context = new DefaultMessageContext(request, getMessageFactory()); + SoapMessage request = loadSoap11Message("empty-soap.xml"); + MessageContext context = new DefaultMessageContext(request, getSoap11MessageFactory()); context.getResponse(); interceptor.handleResponse(context, null); assertEquals("Invalid response", securedResponseMessage, getMessage((SoapMessage) context.getResponse())); diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorAcegiCallbackHandlerTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorAcegiCallbackHandlerTestCase.java index d44165e1..2cac770f 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorAcegiCallbackHandlerTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorAcegiCallbackHandlerTestCase.java @@ -56,8 +56,8 @@ public abstract class Wss4jMessageInterceptorAcegiCallbackHandlerTestCase extend public void testValidateUsernameTokenPlainText() throws Exception { EndpointInterceptor interceptor = prepareInterceptor("UsernameToken", true, false); - SoapMessage message = loadMessage("usernameTokenPlainText-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("usernameTokenPlainText-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.handleRequest(messageContext, null); assertValidateUsernameToken(message); @@ -69,8 +69,8 @@ public abstract class Wss4jMessageInterceptorAcegiCallbackHandlerTestCase extend public void testValidateUsernameTokenDigest() throws Exception { EndpointInterceptor interceptor = prepareInterceptor("UsernameToken", true, true); - SoapMessage message = loadMessage("usernameTokenDigest-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("usernameTokenDigest-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.handleRequest(messageContext, null); assertValidateUsernameToken(message); diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorEncryptionTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorEncryptionTestCase.java index 705a14cd..d457d33f 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorEncryptionTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorEncryptionTestCase.java @@ -61,8 +61,8 @@ public abstract class Wss4jMessageInterceptorEncryptionTestCase extends Wss4jTes } public void testDecryptRequest() throws Exception { - SoapMessage message = loadMessage("encrypted-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("encrypted-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.validateMessage(message, messageContext); Document document = getDocument((SoapMessage) messageContext.getRequest()); assertXpathEvaluatesTo("Decryption error", "Hello", "/SOAP-ENV:Envelope/SOAP-ENV:Body/echo:echoRequest/text()", @@ -72,8 +72,8 @@ public abstract class Wss4jMessageInterceptorEncryptionTestCase extends Wss4jTes } public void testEncryptResponse() throws Exception { - SoapMessage message = loadMessage("empty-soap.xml"); - MessageContext messageContext = getMessageContext(message); + SoapMessage message = loadSoap11Message("empty-soap.xml"); + MessageContext messageContext = getSoap11MessageContext(message); interceptor.setSecurementEncryptionUser("rsakey"); interceptor.secureMessage(message, messageContext); Document document = getDocument(message); diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorHeaderTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorHeaderTestCase.java index 7fbd5ba8..ce7a8c95 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorHeaderTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorHeaderTestCase.java @@ -46,8 +46,8 @@ public abstract class Wss4jMessageInterceptorHeaderTestCase extends Wss4jTestCas } public void testValidateUsernameTokenPlainText() throws Exception { - SoapMessage message = loadMessage("usernameTokenPlainTextWithHeaders-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("usernameTokenPlainTextWithHeaders-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.validateMessage(message, messageContext); Object result = getMessage(message); assertNotNull("No result returned", result); @@ -70,8 +70,8 @@ public abstract class Wss4jMessageInterceptorHeaderTestCase extends Wss4jTestCas } public void testEmptySecurityHeader() throws Exception { - SoapMessage message = loadMessage("emptySecurityHeader-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("emptySecurityHeader-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); try { interceptor.validateMessage(message, messageContext); fail("validation must fail for an empty security header."); @@ -87,8 +87,8 @@ public abstract class Wss4jMessageInterceptorHeaderTestCase extends Wss4jTestCas interceptor.setSecurementPassword("Ernie"); ByteArrayOutputStream os = new ByteArrayOutputStream(); - SoapMessage message = loadMessage("customHeader-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("customHeader-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); message.writeTo(os); String document = os.toString("UTF-8"); assertXpathEvaluatesTo("Header 1 does not exist", "test1", "/SOAP-ENV:Envelope/SOAP-ENV:Header/test:header1", diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorSignTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorSignTestCase.java index 404ddde7..946e2051 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorSignTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorSignTestCase.java @@ -55,9 +55,9 @@ public abstract class Wss4jMessageInterceptorSignTestCase extends Wss4jTestCase } public void testValidateCertificate() throws Exception { - SoapMessage message = loadMessage("signed-soap.xml"); + SoapMessage message = loadSoap11Message("signed-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.validateMessage(message, messageContext); Object result = getMessage(message); assertNotNull("No result returned", result); @@ -66,8 +66,8 @@ public abstract class Wss4jMessageInterceptorSignTestCase extends Wss4jTestCase } public void testValidateCertificateWithSignatureConfirmation() throws Exception { - SoapMessage message = loadMessage("signed-soap.xml"); - MessageContext messageContext = getMessageContext(message); + SoapMessage message = loadSoap11Message("signed-soap.xml"); + MessageContext messageContext = getSoap11MessageContext(message); interceptor.setEnableSignatureConfirmation(true); interceptor.validateMessage(message, messageContext); WebServiceMessage response = messageContext.getResponse(); @@ -83,8 +83,8 @@ public abstract class Wss4jMessageInterceptorSignTestCase extends Wss4jTestCase interceptor.setEnableSignatureConfirmation(false); interceptor.setSecurementPassword("123456"); interceptor.setSecurementUsername("rsaKey"); - SoapMessage message = loadMessage("empty-soap.xml"); - MessageContext messageContext = getMessageContext(message); + SoapMessage message = loadSoap11Message("empty-soap.xml"); + MessageContext messageContext = getSoap11MessageContext(message); // interceptor.setSecurementSignatureKeyIdentifier("IssuerSerial"); @@ -102,8 +102,8 @@ public abstract class Wss4jMessageInterceptorSignTestCase extends Wss4jTestCase interceptor.setEnableSignatureConfirmation(false); interceptor.setSecurementPassword("123456"); interceptor.setSecurementSignatureUser("rsaKey"); - SoapMessage message = loadMessage("empty-soap.xml"); - MessageContext messageContext = getMessageContext(message); + SoapMessage message = loadSoap11Message("empty-soap.xml"); + MessageContext messageContext = getSoap11MessageContext(message); interceptor.secureMessage(message, messageContext); diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorSpringSecurityCallbackHandlerTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorSpringSecurityCallbackHandlerTestCase.java index d94dd162..ff54f887 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorSpringSecurityCallbackHandlerTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorSpringSecurityCallbackHandlerTestCase.java @@ -56,8 +56,8 @@ public abstract class Wss4jMessageInterceptorSpringSecurityCallbackHandlerTestCa public void testValidateUsernameTokenPlainText() throws Exception { EndpointInterceptor interceptor = prepareInterceptor("UsernameToken", true, false); - SoapMessage message = loadMessage("usernameTokenPlainText-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("usernameTokenPlainText-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.handleRequest(messageContext, null); assertValidateUsernameToken(message); @@ -69,8 +69,8 @@ public abstract class Wss4jMessageInterceptorSpringSecurityCallbackHandlerTestCa public void testValidateUsernameTokenDigest() throws Exception { EndpointInterceptor interceptor = prepareInterceptor("UsernameToken", true, true); - SoapMessage message = loadMessage("usernameTokenDigest-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("usernameTokenDigest-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.handleRequest(messageContext, null); assertValidateUsernameToken(message); diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorTimestampTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorTimestampTestCase.java index a777a93f..6ce9ae6d 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorTimestampTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorTimestampTestCase.java @@ -16,22 +16,15 @@ package org.springframework.ws.soap.security.wss4j; -import java.lang.reflect.Field; import java.text.DateFormat; import java.text.SimpleDateFormat; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.Transformer; -import javax.xml.transform.Result; -import javax.xml.transform.Source; - import org.w3c.dom.Document; import org.springframework.ws.context.DefaultMessageContext; import org.springframework.ws.context.MessageContext; import org.springframework.ws.soap.SoapMessage; import org.springframework.ws.soap.security.WsSecurityValidationException; -import org.springframework.xml.transform.StringResult; public abstract class Wss4jMessageInterceptorTimestampTestCase extends Wss4jTestCase { @@ -39,8 +32,8 @@ public abstract class Wss4jMessageInterceptorTimestampTestCase extends Wss4jTest Wss4jSecurityInterceptor interceptor = new Wss4jSecurityInterceptor(); interceptor.setSecurementActions("Timestamp"); interceptor.afterPropertiesSet(); - SoapMessage message = loadMessage("empty-soap.xml"); - MessageContext context = getMessageContext(message); + SoapMessage message = loadSoap11Message("empty-soap.xml"); + MessageContext context = getSoap11MessageContext(message); interceptor.secureMessage(message, context); Document document = getDocument(message); assertXpathExists("timestamp header not found", @@ -53,7 +46,7 @@ public abstract class Wss4jMessageInterceptorTimestampTestCase extends Wss4jTest interceptor.afterPropertiesSet(); SoapMessage message = getMessageWithTimestamp(); - MessageContext context = new DefaultMessageContext(message, getMessageFactory()); + MessageContext context = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.validateMessage(message, context); assertXpathNotExists("Security Header not removed", "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security", getDocument(message)); @@ -63,8 +56,8 @@ public abstract class Wss4jMessageInterceptorTimestampTestCase extends Wss4jTest Wss4jSecurityInterceptor interceptor = new Wss4jSecurityInterceptor(); interceptor.setValidationActions("Timestamp"); interceptor.afterPropertiesSet(); - SoapMessage message = loadMessage("expiredTimestamp-soap.xml"); - MessageContext context = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("expiredTimestamp-soap.xml"); + MessageContext context = new DefaultMessageContext(message, getSoap11MessageFactory()); try { interceptor.validateMessage(message, context); fail(); @@ -81,8 +74,8 @@ public abstract class Wss4jMessageInterceptorTimestampTestCase extends Wss4jTest interceptor.setTimestampStrict(true); interceptor.setSecurementTimeToLive(ttlInSeconds); interceptor.afterPropertiesSet(); - SoapMessage message = loadMessage("empty-soap.xml"); - MessageContext context = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("empty-soap.xml"); + MessageContext context = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.secureMessage(message, context); String created = xpathTemplate.evaluateAsString("/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsu:Timestamp/wsu:Created/text()", @@ -100,8 +93,8 @@ public abstract class Wss4jMessageInterceptorTimestampTestCase extends Wss4jTest Wss4jSecurityInterceptor interceptor = new Wss4jSecurityInterceptor(); interceptor.setSecurementActions("Timestamp"); interceptor.afterPropertiesSet(); - SoapMessage message = loadMessage("empty-soap.xml"); - MessageContext context = getMessageContext(message); + SoapMessage message = loadSoap11Message("empty-soap.xml"); + MessageContext context = getSoap11MessageContext(message); interceptor.secureMessage(message, context); return message; } diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorUsernameTokenSignatureTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorUsernameTokenSignatureTestCase.java index 6dd4973e..669317b5 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorUsernameTokenSignatureTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorUsernameTokenSignatureTestCase.java @@ -29,8 +29,8 @@ public abstract class Wss4jMessageInterceptorUsernameTokenSignatureTestCase exte interceptor.setSecurementUsername("Bert"); interceptor.setSecurementPassword("Ernie"); interceptor.afterPropertiesSet(); - SoapMessage message = loadMessage("empty-soap.xml"); - MessageContext context = getMessageContext(message); + SoapMessage message = loadSoap11Message("empty-soap.xml"); + MessageContext context = getSoap11MessageContext(message); interceptor.secureMessage(message, context); Document doc = getDocument(message); diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorUsernameTokenTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorUsernameTokenTestCase.java index 21c40ae0..d642da97 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorUsernameTokenTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorUsernameTokenTestCase.java @@ -25,7 +25,6 @@ import org.springframework.ws.context.DefaultMessageContext; import org.springframework.ws.context.MessageContext; import org.springframework.ws.soap.SoapMessage; import org.springframework.ws.soap.security.wss4j.callback.SimplePasswordValidationCallbackHandler; -import org.springframework.ws.soap.security.WsSecurityValidationException; public abstract class Wss4jMessageInterceptorUsernameTokenTestCase extends Wss4jTestCase { @@ -37,24 +36,24 @@ public abstract class Wss4jMessageInterceptorUsernameTokenTestCase extends Wss4j public void testValidateUsernameTokenPlainText() throws Exception { Wss4jSecurityInterceptor interceptor = prepareInterceptor("UsernameToken", true, false); - SoapMessage message = loadMessage("usernameTokenPlainText-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("usernameTokenPlainText-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.validateMessage(message, messageContext); assertValidateUsernameToken(message); } public void testValidateUsernameTokenDigest() throws Exception { Wss4jSecurityInterceptor interceptor = prepareInterceptor("UsernameToken", true, true); - SoapMessage message = loadMessage("usernameTokenDigest-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("usernameTokenDigest-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.validateMessage(message, messageContext); assertValidateUsernameToken(message); } public void testValidateUsernameTokenWithQualifiedType() throws Exception { Wss4jSecurityInterceptor interceptor = prepareInterceptor("UsernameToken", true, false); - SoapMessage message = loadMessage("usernameTokenPlainTextQualifiedType-soap.xml"); - MessageContext messageContext = new DefaultMessageContext(message, getMessageFactory()); + SoapMessage message = loadSoap11Message("usernameTokenPlainTextQualifiedType-soap.xml"); + MessageContext messageContext = new DefaultMessageContext(message, getSoap11MessageFactory()); interceptor.validateMessage(message, messageContext); assertValidateUsernameToken(message); } @@ -63,9 +62,9 @@ public abstract class Wss4jMessageInterceptorUsernameTokenTestCase extends Wss4j Wss4jSecurityInterceptor interceptor = prepareInterceptor("UsernameToken", false, false); interceptor.setSecurementUsername("Bert"); interceptor.setSecurementPassword("Ernie"); - SoapMessage message = loadMessage("empty-soap.xml"); + SoapMessage message = loadSoap11Message("empty-soap.xml"); - MessageContext messageContext = getMessageContext(message); + MessageContext messageContext = getSoap11MessageContext(message); interceptor.secureMessage(message, messageContext); assertAddUsernameTokenPlainText(message); @@ -75,9 +74,9 @@ public abstract class Wss4jMessageInterceptorUsernameTokenTestCase extends Wss4j Wss4jSecurityInterceptor interceptor = prepareInterceptor("UsernameToken", false, true); interceptor.setSecurementUsername("Bert"); interceptor.setSecurementPassword("Ernie"); - SoapMessage message = loadMessage("empty-soap.xml"); + SoapMessage message = loadSoap11Message("empty-soap.xml"); - MessageContext messageContext = getMessageContext(message); + MessageContext messageContext = getSoap11MessageContext(message); interceptor.secureMessage(message, messageContext); assertAddUsernameTokenDigest(message); } diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorX509TestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorX509TestCase.java index aedbe977..29c88ce7 100644 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorX509TestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jMessageInterceptorX509TestCase.java @@ -52,8 +52,8 @@ public abstract class Wss4jMessageInterceptorX509TestCase extends Wss4jTestCase interceptor.setSecurementPassword("123456"); interceptor.setSecurementUsername("rsaKey"); - SoapMessage message = loadMessage("empty-soap.xml"); - MessageContext messageContext = getMessageContext(message); + SoapMessage message = loadSoap11Message("empty-soap.xml"); + MessageContext messageContext = getSoap11MessageContext(message); interceptor.setSecurementSignatureKeyIdentifier("DirectReference"); diff --git a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jTestCase.java index d3d9bc62..156e9a99 100755 --- a/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jTestCase.java +++ b/security/src/test/java/org/springframework/ws/soap/security/wss4j/Wss4jTestCase.java @@ -20,22 +20,25 @@ import java.util.Properties; import javax.xml.soap.MessageFactory; import javax.xml.soap.MimeHeaders; import javax.xml.soap.SOAPMessage; +import javax.xml.soap.SOAPConstants; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; import javax.xml.transform.dom.DOMSource; import junit.framework.TestCase; import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; +import org.apache.axiom.soap.SOAP12Constants; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.ws.WebServiceMessage; -import org.springframework.ws.WebServiceMessageFactory; import org.springframework.ws.context.DefaultMessageContext; import org.springframework.ws.context.MessageContext; import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.SoapMessageFactory; +import org.springframework.ws.soap.SoapVersion; import org.springframework.ws.soap.axiom.AxiomSoapMessage; import org.springframework.ws.soap.axiom.AxiomSoapMessageFactory; import org.springframework.ws.soap.axiom.support.AxiomUtils; @@ -46,7 +49,8 @@ import org.springframework.xml.xpath.Jaxp13XPathTemplate; public abstract class Wss4jTestCase extends TestCase { - protected MessageFactory messageFactory; + protected MessageFactory saajSoap11MessageFactory; + protected MessageFactory saajSoap12MessageFactory; protected final boolean axiomTest = this.getClass().getSimpleName().startsWith("Axiom"); @@ -58,7 +62,8 @@ public abstract class Wss4jTestCase extends TestCase { if (!axiomTest && !saajTest) { throw new IllegalArgumentException("test class name must statrt with either Axiom or Saaj"); } - messageFactory = MessageFactory.newInstance(); + saajSoap11MessageFactory = MessageFactory.newInstance(); + saajSoap12MessageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); Properties namespaces = new Properties(); namespaces.setProperty("SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/"); namespaces.setProperty("wsse", @@ -105,7 +110,7 @@ public abstract class Wss4jTestCase extends TestCase { assertNull(message, node); } - protected SaajSoapMessage loadSaajMessage(String fileName) throws Exception { + protected SaajSoapMessage loadSaaj11Message(String fileName) throws Exception { MimeHeaders mimeHeaders = new MimeHeaders(); mimeHeaders.addHeader("Content-Type", "text/xml"); Resource resource = new ClassPathResource(fileName, getClass()); @@ -113,14 +118,29 @@ public abstract class Wss4jTestCase extends TestCase { try { assertTrue("Could not load SAAJ message [" + resource + "]", resource.exists()); is = resource.getInputStream(); - return new SaajSoapMessage(messageFactory.createMessage(mimeHeaders, is)); + return new SaajSoapMessage(saajSoap11MessageFactory.createMessage(mimeHeaders, is)); + } + finally { + is.close(); + } + } + + protected SaajSoapMessage loadSaaj12Message(String fileName) throws Exception { + MimeHeaders mimeHeaders = new MimeHeaders(); + mimeHeaders.addHeader("Content-Type", "application/soap+xml"); + Resource resource = new ClassPathResource(fileName, getClass()); + InputStream is = resource.getInputStream(); + try { + assertTrue("Could not load SAAJ message [" + resource + "]", resource.exists()); + is = resource.getInputStream(); + return new SaajSoapMessage(saajSoap12MessageFactory.createMessage(mimeHeaders, is)); } finally { is.close(); } } - protected AxiomSoapMessage loadAxiomMessage(String fileName) throws Exception { + protected AxiomSoapMessage loadAxiom11Message(String fileName) throws Exception { Resource resource = new ClassPathResource(fileName, getClass()); InputStream is = resource.getInputStream(); try { @@ -137,6 +157,23 @@ public abstract class Wss4jTestCase extends TestCase { } } + protected AxiomSoapMessage loadAxiom12Message(String fileName) throws Exception { + Resource resource = new ClassPathResource(fileName, getClass()); + InputStream is = resource.getInputStream(); + try { + assertTrue("Could not load Axiom message [" + resource + "]", resource.exists()); + is = resource.getInputStream(); + + XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(is); + StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(parser, SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI); + org.apache.axiom.soap.SOAPMessage soapMessage = builder.getSoapMessage(); + return new AxiomSoapMessage(soapMessage, "", true, true); + } + finally { + is.close(); + } + } + protected Object getMessage(SoapMessage soapMessage) { if (soapMessage instanceof SaajSoapMessage) { return ((SaajSoapMessage) soapMessage).getSaajMessage(); @@ -163,26 +200,48 @@ public abstract class Wss4jTestCase extends TestCase { protected void onSetup() throws Exception { } - protected SoapMessage loadMessage(String fileName) throws Exception { + protected SoapMessage loadSoap11Message(String fileName) throws Exception { if (axiomTest) { - return loadAxiomMessage(fileName); + return loadAxiom11Message(fileName); } if (saajTest) { - return loadSaajMessage(fileName); + return loadSaaj11Message(fileName); } throw new IllegalArgumentException(); } - protected WebServiceMessageFactory getMessageFactory() throws Exception { + protected SoapMessage loadSoap12Message(String fileName) throws Exception { + if (axiomTest) { + return loadAxiom12Message(fileName); + } + if (saajTest) { + return loadSaaj12Message(fileName); + } + throw new IllegalArgumentException(); + } + + protected SoapMessageFactory getSoap11MessageFactory() throws Exception { if (axiomTest) { return new AxiomSoapMessageFactory(); } if (saajTest) { - return new SaajSoapMessageFactory(messageFactory); + return new SaajSoapMessageFactory(saajSoap11MessageFactory); } throw new IllegalArgumentException(); } + protected SoapMessageFactory getSoap12MessageFactory() throws Exception { + SoapMessageFactory messageFactory; + if (axiomTest) { + messageFactory = new AxiomSoapMessageFactory(); + } else if (saajTest) { + messageFactory = new SaajSoapMessageFactory(saajSoap12MessageFactory); + } else + throw new IllegalArgumentException(); + messageFactory.setSoapVersion(SoapVersion.SOAP_12); + return messageFactory; + } + protected Document getDocument(SoapMessage message) throws Exception { if (axiomTest) { return AxiomUtils.toDocument(((AxiomSoapMessage) message).getAxiomMessage().getSOAPEnvelope()); @@ -193,8 +252,16 @@ public abstract class Wss4jTestCase extends TestCase { throw new IllegalArgumentException(); } - protected MessageContext getMessageContext(final SoapMessage response) throws Exception { - return new DefaultMessageContext(response, getMessageFactory()) { + protected MessageContext getSoap11MessageContext(final SoapMessage response) throws Exception { + return new DefaultMessageContext(response, getSoap11MessageFactory()) { + public WebServiceMessage getResponse() { + return response; + } + }; + } + + protected MessageContext getSoap12MessageContext(final SoapMessage response) throws Exception { + return new DefaultMessageContext(response, getSoap12MessageFactory()) { public WebServiceMessage getResponse() { return response; }