You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2013/10/18 13:35:08 UTC
svn commit: r1533398 - in /cxf/trunk/systests/ws-security/src/test:
java/org/apache/cxf/systest/ws/parts/
resources/org/apache/cxf/systest/ws/parts/
Author: coheigea
Date: Fri Oct 18 11:35:08 2013
New Revision: 1533398
URL: http://svn.apache.org/r1533398
Log:
Added more tests
Modified:
cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/PartsTest.java
cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/StaxPartsTest.java
cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/bad-req-elements-policy.xml
cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/content-encrypted-elements-policy.xml
cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/encrypted-elements-policy.xml
cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/req-elements-policy.xml
cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/signed-elements-policy.xml
Modified: cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/PartsTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/PartsTest.java?rev=1533398&r1=1533397&r2=1533398&view=diff
==============================================================================
--- cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/PartsTest.java (original)
+++ cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/PartsTest.java Fri Oct 18 11:35:08 2013
@@ -129,6 +129,12 @@ public class PartsTest extends AbstractB
QName portQName = new QName(NAMESPACE, "DoubleItRequiredElementsPort");
DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(port, PORT);
+
+ // DOM
+ port.doubleIt(25);
+
+ // Streaming
+ SecurityTestUtil.enableStreaming(port);
port.doubleIt(25);
// This should fail, as the service requires a (bad) header
@@ -136,6 +142,7 @@ public class PartsTest extends AbstractB
port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(port, PORT);
+ // DOM
try {
port.doubleIt(25);
fail("Failure expected on a required header which isn't present");
@@ -144,6 +151,16 @@ public class PartsTest extends AbstractB
assertTrue(ex.getMessage().contains(error));
}
+ // Streaming
+ try {
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+ fail("Failure expected on a required header which isn't present");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ // String error = "RequiredElements: No header element";
+ // assertTrue(ex.getMessage().contains(error));
+ }
+
((java.io.Closeable)port).close();
bus.shutdown(true);
}
@@ -242,6 +259,12 @@ public class PartsTest extends AbstractB
QName portQName = new QName(NAMESPACE, "DoubleItSignedElementsPort");
DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(port, PORT);
+
+ // DOM
+ port.doubleIt(25);
+
+ // Streaming
+ SecurityTestUtil.enableStreaming(port);
port.doubleIt(25);
// This should fail, as the service requires that the To header must be signed
@@ -249,6 +272,7 @@ public class PartsTest extends AbstractB
port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(port, PORT);
+ // DOM
try {
port.doubleIt(25);
fail("Failure expected on a header which isn't signed");
@@ -257,6 +281,16 @@ public class PartsTest extends AbstractB
assertTrue(ex.getMessage().contains(error));
}
+ // Streaming
+ try {
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+ fail("Failure expected on a header which isn't signed");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ // String error = "SignedElements";
+ // assertTrue(ex.getMessage().contains(error));
+ }
+
((java.io.Closeable)port).close();
bus.shutdown(true);
}
@@ -355,6 +389,12 @@ public class PartsTest extends AbstractB
QName portQName = new QName(NAMESPACE, "DoubleItEncryptedElementsPort");
DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(port, PORT);
+
+ // DOM
+ port.doubleIt(25);
+
+ // Streaming
+ SecurityTestUtil.enableStreaming(port);
port.doubleIt(25);
// This should fail, as the service requires that the header must be encrypted
@@ -362,6 +402,7 @@ public class PartsTest extends AbstractB
port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(port, PORT);
+ // DOM
try {
port.doubleIt(25);
fail("Failure expected on a header which isn't encrypted");
@@ -370,6 +411,16 @@ public class PartsTest extends AbstractB
assertTrue(ex.getMessage().contains(error));
}
+ // Streaming
+ try {
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+ fail("Failure expected on a header which isn't encrypted");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ // String error = "EncryptedElements";
+ // assertTrue(ex.getMessage().contains(error));
+ }
+
((java.io.Closeable)port).close();
bus.shutdown(true);
}
@@ -391,7 +442,6 @@ public class PartsTest extends AbstractB
QName portQName = new QName(NAMESPACE, "DoubleItContentEncryptedElementsPort");
DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(port, PORT);
- port.doubleIt(25);
// This should fail, as the service requires that the header must be encrypted
portQName = new QName(NAMESPACE, "DoubleItContentEncryptedElementsPort2");
Modified: cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/StaxPartsTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/StaxPartsTest.java?rev=1533398&r1=1533397&r2=1533398&view=diff
==============================================================================
--- cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/StaxPartsTest.java (original)
+++ cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/parts/StaxPartsTest.java Fri Oct 18 11:35:08 2013
@@ -28,9 +28,7 @@ import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBusFactory;
import org.apache.cxf.systest.ws.common.SecurityTestUtil;
import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-
import org.example.contract.doubleit.DoubleItPortType;
-
import org.junit.BeforeClass;
/**
@@ -113,6 +111,59 @@ public class StaxPartsTest extends Abstr
}
@org.junit.Test
+ public void testRequiredElements() throws Exception {
+
+ SpringBusFactory bf = new SpringBusFactory();
+ URL busFile = PartsTest.class.getResource("client.xml");
+
+ Bus bus = bf.createBus(busFile.toString());
+ SpringBusFactory.setDefaultBus(bus);
+ SpringBusFactory.setThreadDefaultBus(bus);
+
+ URL wsdl = PartsTest.class.getResource("DoubleItParts.wsdl");
+ Service service = Service.create(wsdl, SERVICE_QNAME);
+
+ // Successful invocation
+ QName portQName = new QName(NAMESPACE, "DoubleItRequiredElementsPort");
+ DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
+ updateAddressPort(port, PORT);
+
+ // DOM
+ port.doubleIt(25);
+
+ // Streaming
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+
+ // This should fail, as the service requires a (bad) header
+ portQName = new QName(NAMESPACE, "DoubleItRequiredElementsPort2");
+ port = service.getPort(portQName, DoubleItPortType.class);
+ updateAddressPort(port, PORT);
+
+ // DOM
+ try {
+ port.doubleIt(25);
+ fail("Failure expected on a required header which isn't present");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ String error = "ToTo must be present";
+ assertTrue(ex.getMessage().contains(error));
+ }
+
+ // Streaming
+ try {
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+ fail("Failure expected on a required header which isn't present");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ // String error = "ToTo must be present";
+ // assertTrue(ex.getMessage().contains(error));
+ }
+
+ ((java.io.Closeable)port).close();
+ bus.shutdown(true);
+ }
+
+ @org.junit.Test
public void testSignedParts() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
@@ -190,6 +241,61 @@ public class StaxPartsTest extends Abstr
}
@org.junit.Test
+ public void testSignedElements() throws Exception {
+
+ SpringBusFactory bf = new SpringBusFactory();
+ URL busFile = PartsTest.class.getResource("client.xml");
+
+ Bus bus = bf.createBus(busFile.toString());
+ SpringBusFactory.setDefaultBus(bus);
+ SpringBusFactory.setThreadDefaultBus(bus);
+
+ URL wsdl = PartsTest.class.getResource("DoubleItParts.wsdl");
+ Service service = Service.create(wsdl, SERVICE_QNAME);
+
+ // Successful invocation
+ QName portQName = new QName(NAMESPACE, "DoubleItSignedElementsPort");
+ DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
+ updateAddressPort(port, PORT);
+
+ // DOM
+ port.doubleIt(25);
+
+ // Streaming
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+
+ // This should fail, as the service requires that the To header must be signed
+ portQName = new QName(NAMESPACE, "DoubleItSignedElementsPort2");
+ port = service.getPort(portQName, DoubleItPortType.class);
+ updateAddressPort(port, PORT);
+
+ // DOM
+ /* TODO See WSS-482
+ try {
+ port.doubleIt(25);
+ fail("Failure expected on a header which isn't signed");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ String error = "SignedElements";
+ assertTrue(ex.getMessage().contains(error));
+ }
+
+ // Streaming
+ try {
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+ fail("Failure expected on a header which isn't signed");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ // String error = "SignedElements";
+ // assertTrue(ex.getMessage().contains(error));
+ }
+ */
+
+ ((java.io.Closeable)port).close();
+ bus.shutdown(true);
+ }
+
+ @org.junit.Test
public void testEncryptedParts() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
@@ -266,4 +372,97 @@ public class StaxPartsTest extends Abstr
bus.shutdown(true);
}
+ @org.junit.Test
+ public void testEncryptedElements() throws Exception {
+
+ SpringBusFactory bf = new SpringBusFactory();
+ URL busFile = PartsTest.class.getResource("client.xml");
+
+ Bus bus = bf.createBus(busFile.toString());
+ SpringBusFactory.setDefaultBus(bus);
+ SpringBusFactory.setThreadDefaultBus(bus);
+
+ URL wsdl = PartsTest.class.getResource("DoubleItParts.wsdl");
+ Service service = Service.create(wsdl, SERVICE_QNAME);
+
+ // Successful invocation
+ QName portQName = new QName(NAMESPACE, "DoubleItEncryptedElementsPort");
+ DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
+ updateAddressPort(port, PORT);
+
+ // DOM
+ port.doubleIt(25);
+
+ // Streaming
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+
+ // This should fail, as the service requires that the header must be encrypted
+ portQName = new QName(NAMESPACE, "DoubleItEncryptedElementsPort2");
+ port = service.getPort(portQName, DoubleItPortType.class);
+ updateAddressPort(port, PORT);
+
+ /*
+ * TODO See WSS-482
+ // DOM
+ try {
+ port.doubleIt(25);
+ fail("Failure expected on a header which isn't encrypted");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ System.out.println("ERR2: " + ex.getMessage());
+ String error = "EncryptedElements";
+ assertTrue(ex.getMessage().contains(error));
+ }
+
+ // Streaming
+ try {
+ SecurityTestUtil.enableStreaming(port);
+ port.doubleIt(25);
+ fail("Failure expected on a header which isn't encrypted");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ // String error = "EncryptedElements";
+ // assertTrue(ex.getMessage().contains(error));
+ }
+ */
+
+ ((java.io.Closeable)port).close();
+ bus.shutdown(true);
+ }
+
+ @org.junit.Test
+ public void testContentEncryptedElements() throws Exception {
+
+ SpringBusFactory bf = new SpringBusFactory();
+ URL busFile = PartsTest.class.getResource("client.xml");
+
+ Bus bus = bf.createBus(busFile.toString());
+ SpringBusFactory.setDefaultBus(bus);
+ SpringBusFactory.setThreadDefaultBus(bus);
+
+ URL wsdl = PartsTest.class.getResource("DoubleItParts.wsdl");
+ Service service = Service.create(wsdl, SERVICE_QNAME);
+
+ // Successful invocation
+ QName portQName = new QName(NAMESPACE, "DoubleItContentEncryptedElementsPort");
+ DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
+ updateAddressPort(port, PORT);
+
+ // This should fail, as the service requires that the header must be encrypted
+ portQName = new QName(NAMESPACE, "DoubleItContentEncryptedElementsPort2");
+ port = service.getPort(portQName, DoubleItPortType.class);
+ updateAddressPort(port, PORT);
+
+ try {
+ port.doubleIt(25);
+ fail("Failure expected on a header which isn't encrypted");
+ } catch (javax.xml.ws.soap.SOAPFaultException ex) {
+ String error = "To must be encrypted";
+ assertTrue(ex.getMessage().contains(error));
+ }
+
+ ((java.io.Closeable)port).close();
+ bus.shutdown(true);
+ }
+
+
}
Modified: cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/bad-req-elements-policy.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/bad-req-elements-policy.xml?rev=1533398&r1=1533397&r2=1533398&view=diff
==============================================================================
--- cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/bad-req-elements-policy.xml (original)
+++ cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/bad-req-elements-policy.xml Fri Oct 18 11:35:08 2013
@@ -41,7 +41,9 @@
</sp:AsymmetricBinding>
<sp:RequiredElements
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
- <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing">wsa:ToTo</sp:XPath>
+ <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+ >/soap:Envelope/soap:Header/wsa:ToTo</sp:XPath>
</sp:RequiredElements>
<sp:SignedParts
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
Modified: cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/content-encrypted-elements-policy.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/content-encrypted-elements-policy.xml?rev=1533398&r1=1533397&r2=1533398&view=diff
==============================================================================
--- cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/content-encrypted-elements-policy.xml (original)
+++ cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/content-encrypted-elements-policy.xml Fri Oct 18 11:35:08 2013
@@ -41,7 +41,9 @@
</sp:AsymmetricBinding>
<sp:ContentEncryptedElements
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
- <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing">//wsa:To</sp:XPath>
+ <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+ >/soap:Envelope/soap:Header/wsa:To</sp:XPath>
</sp:ContentEncryptedElements>
<sp:SignedParts
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
Modified: cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/encrypted-elements-policy.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/encrypted-elements-policy.xml?rev=1533398&r1=1533397&r2=1533398&view=diff
==============================================================================
--- cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/encrypted-elements-policy.xml (original)
+++ cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/encrypted-elements-policy.xml Fri Oct 18 11:35:08 2013
@@ -41,7 +41,9 @@
</sp:AsymmetricBinding>
<sp:EncryptedElements
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
- <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing">//wsa:To</sp:XPath>
+ <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+ >/soap:Envelope/soap:Header/wsa:To</sp:XPath>
</sp:EncryptedElements>
<sp:SignedParts
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
Modified: cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/req-elements-policy.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/req-elements-policy.xml?rev=1533398&r1=1533397&r2=1533398&view=diff
==============================================================================
--- cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/req-elements-policy.xml (original)
+++ cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/req-elements-policy.xml Fri Oct 18 11:35:08 2013
@@ -41,7 +41,9 @@
</sp:AsymmetricBinding>
<sp:RequiredElements
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
- <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing">//wsa:To</sp:XPath>
+ <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+ >/soap:Envelope/soap:Header/wsa:To</sp:XPath>
</sp:RequiredElements>
<sp:SignedParts
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
Modified: cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/signed-elements-policy.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/signed-elements-policy.xml?rev=1533398&r1=1533397&r2=1533398&view=diff
==============================================================================
--- cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/signed-elements-policy.xml (original)
+++ cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/parts/signed-elements-policy.xml Fri Oct 18 11:35:08 2013
@@ -41,7 +41,9 @@
</sp:AsymmetricBinding>
<sp:SignedElements
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
- <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing">//wsa:To</sp:XPath>
+ <sp:XPath xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+ >/soap:Envelope/soap:Header/wsa:To</sp:XPath>
</sp:SignedElements>
<wsaws:UsingAddressing xmlns:wsaws="http://www.w3.org/2006/05/addressing/wsdl" />
</wsp:All>