use of org.w3._2002._03.xkms_wsdl.XKMSPortType in project cxf by apache.
the class XKMSClientFactory method create.
public static XKMSPortType create(String endpointAddress, Bus bus) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setBus(bus);
factory.setServiceClass(XKMSPortType.class);
factory.setAddress(endpointAddress);
Map<String, Object> properties = new HashMap<>();
properties.put("jaxb.additionalContextClasses", new Class[] { ResultDetails.class });
factory.setProperties(properties);
return (XKMSPortType) factory.create();
}
use of org.w3._2002._03.xkms_wsdl.XKMSPortType in project cxf by apache.
the class XKMSTest method testRegisterUnitTest.
@org.junit.Test
public void testRegisterUnitTest() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
URL busFile = XKMSTest.class.getResource("client.xml");
Bus bus = bf.createBus(busFile.toString());
BusFactory.setDefaultBus(bus);
BusFactory.setThreadDefaultBus(bus);
// XKMSTest.class.getResource("xkms.wsdl");
URL wsdl = new URL("https://localhost:" + PORT2 + "/XKMS?wsdl");
String ns = "http://www.w3.org/2002/03/xkms#wsdl";
QName serviceQName = new QName(ns, "XKMSService");
Service service = Service.create(wsdl, serviceQName);
QName portQName = new QName(NAMESPACE, "XKMSPort");
XKMSPortType port = service.getPort(portQName, XKMSPortType.class);
// updateAddressPort(port, PORT2);
// First try to locate - which should fail
LocateRequestType locateRequest = new LocateRequestType();
locateRequest.setId("_xyz");
locateRequest.setService("http://cxf.apache.org/services/XKMS/");
QueryKeyBindingType queryKeyBinding = new QueryKeyBindingType();
UseKeyWithType useKeyWithType = new UseKeyWithType();
useKeyWithType.setApplication("urn:ietf:rfc:2459");
useKeyWithType.setIdentifier("CN=client");
queryKeyBinding.getUseKeyWith().add(useKeyWithType);
locateRequest.setQueryKeyBinding(queryKeyBinding);
LocateResultType locateResultType = port.locate(locateRequest);
assertTrue(locateResultType.getResultMajor().endsWith("Success"));
assertTrue(locateResultType.getResultMinor().endsWith("NoMatch"));
// Now register
RegisterRequestType registerRequest = new RegisterRequestType();
registerRequest.setId("_xyz");
registerRequest.setService("http://cxf.apache.org/services/XKMS/");
PrototypeKeyBindingType prototypeKeyBinding = new PrototypeKeyBindingType();
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
InputStream certInputStream = ClassLoaderUtils.getResourceAsStream("xkmstest.cer", this.getClass());
Certificate certificate = certificateFactory.generateCertificate(certInputStream);
KeyInfoType keyInfo = X509Utils.getKeyInfo((X509Certificate) certificate);
prototypeKeyBinding.setKeyInfo(keyInfo);
prototypeKeyBinding.getUseKeyWith().add(useKeyWithType);
registerRequest.setPrototypeKeyBinding(prototypeKeyBinding);
RegisterResultType registerResult = port.register(registerRequest);
assertTrue(registerResult.getResultMajor().endsWith("Success"));
assertFalse(registerResult.getKeyBinding().isEmpty());
// Now locate again - which should work
locateResultType = port.locate(locateRequest);
assertTrue(locateResultType.getResultMajor().endsWith("Success"));
assertFalse(locateResultType.getUnverifiedKeyBinding().isEmpty());
// Delete the certificate so that the test works when run again
Path path = FileSystems.getDefault().getPath("target/test-classes/certs/xkms/CN-client.cer");
Files.delete(path);
}
Aggregations