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 2011/12/02 15:46:38 UTC
svn commit: r1209517 -
/cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
Author: coheigea
Date: Fri Dec 2 14:46:37 2011
New Revision: 1209517
URL: http://svn.apache.org/viewvc?rev=1209517&view=rev
Log:
Re-enabling SecurityPolicyTest(s)
Modified:
cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
Modified: cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java?rev=1209517&r1=1209516&r2=1209517&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java (original)
+++ cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java Fri Dec 2 14:46:37 2011
@@ -20,9 +20,7 @@
package org.apache.cxf.systest.ws.security;
import java.io.IOException;
-import java.io.PrintWriter;
import java.io.StringReader;
-import java.io.StringWriter;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
@@ -34,6 +32,7 @@ import javax.xml.namespace.QName;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Dispatch;
import javax.xml.ws.Endpoint;
import javax.xml.ws.Provider;
import javax.xml.ws.Service;
@@ -42,24 +41,19 @@ import javax.xml.ws.ServiceMode;
import javax.xml.ws.WebServiceProvider;
import javax.xml.xpath.XPathConstants;
-import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
-import org.xml.sax.InputSource;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.helpers.XMLUtils;
import org.apache.cxf.helpers.XPathUtils;
-import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.message.Message;
import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.systest.ws.common.DoubleItPortTypeImpl;
+import org.apache.cxf.systest.ws.common.DoubleItImpl;
import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.cxf.ws.policy.PolicyConstants;
import org.apache.cxf.ws.policy.PolicyEngine;
import org.apache.cxf.ws.security.SecurityConstants;
import org.apache.ws.security.WSPasswordCallback;
@@ -71,7 +65,6 @@ import org.example.schema.doubleit.Doubl
import org.junit.BeforeClass;
import org.junit.Test;
-
public class SecurityPolicyTest extends AbstractBusClientServerTestBase {
public static final String PORT = allocatePort(SecurityPolicyTest.class);
public static final String SSL_PORT = allocatePort(SecurityPolicyTest.class, 1);
@@ -111,105 +104,106 @@ public class SecurityPolicyTest extends
@BeforeClass
public static void init() throws Exception {
+ URL wsdl = SecurityPolicyTest.class.getResource("DoubleIt.wsdl");
+
createStaticBus(SecurityPolicyTest.class.getResource("https_config.xml").toString())
.getExtension(PolicyEngine.class).setEnabled(true);
getStaticBus().getOutInterceptors().add(new LoggingOutInterceptor());
- EndpointImpl ep = (EndpointImpl)Endpoint.publish(POLICY_HTTPS_ADDRESS,
- new DoubleItPortTypeImpl());
+
+ EndpointImpl ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortHttps"));
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_HTTPS_ADDRESS);
+ ep.publish();
ep.getServer().getEndpoint().getEndpointInfo().setProperty(SecurityConstants.CALLBACK_HANDLER,
new ServerPasswordCallback());
- Endpoint.publish(POLICY_ADDRESS,
- new DoubleItPortTypeImpl());
-
- ep = (EndpointImpl)Endpoint.publish(POLICY_ENCSIGN_ADDRESS,
- new DoubleItPortTypeImpl());
+ Endpoint.publish(POLICY_ADDRESS, new DoubleItImpl());
+ ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(
+ new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortEncryptThenSign")
+ );
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_ENCSIGN_ADDRESS);
+ ep.publish();
EndpointInfo ei = ep.getServer().getEndpoint().getEndpointInfo();
- ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
- ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("bob.properties").toString());
- ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
+ setCryptoProperties(ei, "bob.properties", "alice.properties");
- ep = (EndpointImpl)Endpoint.publish(POLICY_SIGNENC_ADDRESS,
- new DoubleItPortTypeImpl());
-
+ ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(
+ new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortSignThenEncrypt")
+ );
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_SIGNENC_ADDRESS);
+ ep.publish();
ei = ep.getServer().getEndpoint().getEndpointInfo();
- ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
- ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("bob.properties").toString());
- ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
+ setCryptoProperties(ei, "bob.properties", "alice.properties");
- ep = (EndpointImpl)Endpoint.publish(POLICY_SIGN_ADDRESS,
- new DoubleItPortTypeImpl());
+ ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortSign"));
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_SIGN_ADDRESS);
+ ep.publish();
ei = ep.getServer().getEndpoint().getEndpointInfo();
- ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
- ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("bob.properties").toString());
- ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
+ setCryptoProperties(ei, "bob.properties", "alice.properties");
- ep = (EndpointImpl)Endpoint.publish(POLICY_XPATH_ADDRESS,
- new DoubleItPortTypeImpl());
- ei = ep.getServer().getEndpoint().getEndpointInfo();
- ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
- ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
- ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("bob.properties").toString());
+ ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortXPath"));
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_XPATH_ADDRESS);
+ ep.publish();
+ ei = ep.getServer().getEndpoint().getEndpointInfo();
+ setCryptoProperties(ei, "alice.properties", "bob.properties");
ep = (EndpointImpl)Endpoint.publish(POLICY_SIGNENC_PROVIDER_ADDRESS,
new DoubleItProvider());
ei = ep.getServer().getEndpoint().getEndpointInfo();
- ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
- ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("bob.properties").toString());
- ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
+ setCryptoProperties(ei, "bob.properties", "alice.properties");
- ep = (EndpointImpl)Endpoint.publish(POLICY_SIGNONLY_ADDRESS,
- new DoubleItPortTypeImpl());
+ ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortSignedOnly"));
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_SIGNONLY_ADDRESS);
+ ep.publish();
ei = ep.getServer().getEndpoint().getEndpointInfo();
- ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
- ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("bob.properties").toString());
- ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
+ setCryptoProperties(ei, "bob.properties", "alice.properties");
-
- ep = (EndpointImpl)Endpoint.publish(POLICY_CXF3041_ADDRESS,
- new DoubleItPortTypeImpl());
+ ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortCXF3041"));
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_CXF3041_ADDRESS);
+ ep.publish();
ei = ep.getServer().getEndpoint().getEndpointInfo();
- ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
- ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("bob.properties").toString());
- ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
+ setCryptoProperties(ei, "bob.properties", "alice.properties");
- ep = (EndpointImpl)Endpoint.publish(POLICY_CXF3042_ADDRESS,
- new DoubleItPortTypeImpl());
+ ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortCXF3042"));
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_CXF3042_ADDRESS);
+ ep.publish();
ei = ep.getServer().getEndpoint().getEndpointInfo();
- ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
- ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
- ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
+ setCryptoProperties(ei, "alice.properties", "alice.properties");
- ep = (EndpointImpl)Endpoint.publish(POLICY_CXF3452_ADDRESS,
- new DoubleItPortTypeImpl());
+ ep = (EndpointImpl)Endpoint.create(new DoubleItImpl());
+ ep.setEndpointName(new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortCXF3452"));
+ ep.setWsdlLocation(wsdl.getPath());
+ ep.setAddress(POLICY_CXF3452_ADDRESS);
+ ep.publish();
ei = ep.getServer().getEndpoint().getEndpointInfo();
+ setCryptoProperties(ei, "alice.properties", "alice.properties");
+ ei.setProperty(Message.SCHEMA_VALIDATION_ENABLED, Boolean.TRUE);
+ }
+
+ private static void setCryptoProperties(EndpointInfo ei, String sigProps, String encProps) {
ei.setProperty(SecurityConstants.CALLBACK_HANDLER, new KeystorePasswordCallback());
ei.setProperty(SecurityConstants.SIGNATURE_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
+ SecurityPolicyTest.class.getResource(sigProps).toString());
ei.setProperty(SecurityConstants.ENCRYPT_PROPERTIES,
- SecurityPolicyTest.class.getResource("alice.properties").toString());
- ei.setProperty(Message.SCHEMA_VALIDATION_ENABLED, Boolean.TRUE);
+ SecurityPolicyTest.class.getResource(encProps).toString());
}
@Test
- @org.junit.Ignore
public void testPolicy() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
@@ -299,12 +293,9 @@ public class SecurityPolicyTest extends
throw ex;
}
}
-
-
}
@Test
- @org.junit.Ignore
public void testSignedOnlyWithUnsignedMessage() throws Exception {
//CXF-2244
SpringBusFactory bf = new SpringBusFactory();
@@ -331,36 +322,6 @@ public class SecurityPolicyTest extends
//This should work as it should be properly signed.
assertEquals(10, pt.doubleIt(5));
- StringWriter swriter = new StringWriter();
- PrintWriter writer = new PrintWriter(swriter);
- try {
- ClientProxy.getClient(pt).getInInterceptors()
- .add(new LoggingInInterceptor("CheckFaultLogging", writer));
- pt.doubleIt(-100);
- fail("Should have resulted in a DoubleItFault_Exception");
- } catch (Exception ex) {
- //expected
- writer.flush();
- String s = swriter.toString();
- s = s.substring(s.indexOf("Payload: ") + 9);
- s = s.substring(0, s.lastIndexOf("Envelope>") + 9);
- assertTrue("Content wasn't encrypted!", !s.contains("I don't like that."));
- //System.out.println(s);
- Document d = XMLUtils.parse(new InputSource(new StringReader(s)));
- Node nd = d.getDocumentElement().getFirstChild();
- while (nd != null && !"Body".equals(nd.getLocalName())) {
- nd = nd.getNextSibling();
- }
- if (nd == null) {
- throw ex;
- }
- //System.out.println(s);
- Attr val = ((org.w3c.dom.Element)nd)
- .getAttributeNodeNS(PolicyConstants.WSU_NAMESPACE_URI, "Id");
- assertNotNull("No wsu:Id, thus, not signed", val);
- }
-
-
//Try sending a message with the "TimestampOnly" policy into affect to the
//service running the "signed only" policy. This SHOULD fail as the
//body is then not signed.
@@ -377,12 +338,19 @@ public class SecurityPolicyTest extends
}
- /*
@Test
public void testDispatchClient() throws Exception {
- Dispatch<Source> disp = service.createDispatch(DoubleItService.DoubleItPortEncryptThenSign,
- Source.class,
- Mode.PAYLOAD);
+ SpringBusFactory bf = new SpringBusFactory();
+
+ Bus bus = bf.createBus();
+ SpringBusFactory.setDefaultBus(bus);
+ SpringBusFactory.setThreadDefaultBus(bus);
+
+ URL wsdl = SecurityPolicyTest.class.getResource("DoubleIt.wsdl");
+ Service service = Service.create(wsdl, SERVICE_QNAME);
+
+ QName portQName = new QName(NAMESPACE, "DoubleItPortEncryptThenSign");
+ Dispatch<Source> disp = service.createDispatch(portQName, Source.class, Mode.PAYLOAD);
disp.getRequestContext().put(SecurityConstants.CALLBACK_HANDLER,
new KeystorePasswordCallback());
@@ -392,7 +360,7 @@ public class SecurityPolicyTest extends
getClass().getResource("bob.properties"));
updateAddressPort(disp, PORT);
- String req = "<ns2:DoubleIt xmlns:ns2=\"http://cxf.apache.org/policytest/DoubleIt\">"
+ String req = "<ns2:DoubleIt xmlns:ns2=\"http://www.example.org/schema/DoubleIt\">"
+ "<numberToDouble>25</numberToDouble></ns2:DoubleIt>";
Source source = new StreamSource(new StringReader(req));
source = disp.invoke(source);
@@ -402,12 +370,11 @@ public class SecurityPolicyTest extends
nd = ((Document)nd).getDocumentElement();
}
Map<String, String> ns = new HashMap<String, String>();
- ns.put("ns2", "http://cxf.apache.org/policytest/DoubleIt");
+ ns.put("ns2", "http://www.example.org/schema/DoubleIt");
XPathUtils xp = new XPathUtils(ns);
Object o = xp.getValue("//ns2:DoubleItResponse/doubledNumber", nd, XPathConstants.STRING);
assertEquals(XMLUtils.toString(nd), "50", o);
}
- */
@WebServiceProvider(targetNamespace = "http://www.example.org/contract/DoubleIt",
portName = "DoubleItPortSignThenEncrypt",
@@ -429,12 +396,12 @@ public class SecurityPolicyTest extends
el = ((Document)el).getDocumentElement();
}
Map<String, String> ns = new HashMap<String, String>();
- ns.put("ns2", "http://www.example.org/contract/DoubleIt");
+ ns.put("ns2", "http://www.example.org/schema/DoubleIt");
XPathUtils xp = new XPathUtils(ns);
String o = (String)xp.getValue("//ns2:DoubleIt/numberToDouble", el, XPathConstants.STRING);
int i = Integer.parseInt(o);
- String req = "<ns2:DoubleItResponse xmlns:ns2=\"http://www.example.org/contract/DoubleIt\">"
+ String req = "<ns2:DoubleItResponse xmlns:ns2=\"http://www.example.org/schema/DoubleIt\">"
+ "<doubledNumber>" + Integer.toString(i * 2) + "</doubledNumber></ns2:DoubleItResponse>";
return new StreamSource(new StringReader(req));
}
@@ -443,7 +410,6 @@ public class SecurityPolicyTest extends
@Test
- @org.junit.Ignore
public void testCXF3041() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
@@ -470,7 +436,6 @@ public class SecurityPolicyTest extends
}
@Test
- @org.junit.Ignore
public void testCXF3042() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
@@ -497,7 +462,6 @@ public class SecurityPolicyTest extends
}
@Test
- @org.junit.Ignore
public void testCXF3452() throws Exception {
SpringBusFactory bf = new SpringBusFactory();