use of org.apache.cxf.xkms.model.xkms.PrototypeKeyBindingType in project cxf by apache.
the class XKMSServiceTest method testRegisterWithoutKey.
@Test
public void testRegisterWithoutKey() throws URISyntaxException, Exception {
RegisterRequestType request = new RegisterRequestType();
setGenericRequestParams(request);
PrototypeKeyBindingType binding = new PrototypeKeyBindingType();
KeyInfoType keyInfo = new KeyInfoType();
binding.setKeyInfo(keyInfo);
request.setPrototypeKeyBinding(binding);
RegisterResultType result = xkmsService.register(request);
Assert.assertEquals(ResultMajorEnum.HTTP_WWW_W_3_ORG_2002_03_XKMS_SENDER.value(), result.getResultMajor());
Assert.assertEquals(ResultMinorEnum.HTTP_WWW_W_3_ORG_2002_03_XKMS_FAILURE.value(), result.getResultMinor());
}
use of org.apache.cxf.xkms.model.xkms.PrototypeKeyBindingType in project cxf by apache.
the class X509Register method prepareResponseBinding.
private KeyBindingType prepareResponseBinding(PrototypeKeyBindingType binding) {
KeyBindingType responseBinding = new KeyBindingType();
responseBinding.setKeyInfo(binding.getKeyInfo());
StatusType status = new StatusType();
status.setStatusValue(KeyBindingEnum.HTTP_WWW_W_3_ORG_2002_03_XKMS_VALID);
responseBinding.setStatus(status);
return responseBinding;
}
use of org.apache.cxf.xkms.model.xkms.PrototypeKeyBindingType in project cxf by apache.
the class X509Register method register.
@Override
public RegisterResultType register(RegisterRequestType request, RegisterResultType response) {
try {
PrototypeKeyBindingType binding = request.getPrototypeKeyBinding();
X509Utils.assertElementNotNull(binding, PrototypeKeyBindingType.class);
KeyInfoType keyInfo = binding.getKeyInfo();
X509Utils.assertElementNotNull(binding, KeyInfoType.class);
List<UseKeyWithType> useKeyWithList = binding.getUseKeyWith();
if (useKeyWithList == null || useKeyWithList.size() != 1) {
throw new IllegalArgumentException("Exactly one useKeyWith element is supported");
// TODO standard requires support for multiple useKeyWith attributes
}
UseKeyWithType useKeyWith = useKeyWithList.get(0);
List<X509Certificate> certList = getCertsFromKeyInfo(keyInfo);
if (certList.size() != 1) {
throw new IllegalArgumentException("Must provide one X509Certificate");
}
X509Certificate cert = certList.get(0);
certRepo.saveCertificate(cert, useKeyWith);
KeyBindingType responseBinding = prepareResponseBinding(binding);
response.getKeyBinding().add(responseBinding);
return response;
} catch (CertificateException e) {
throw new RuntimeException(e.getMessage(), e);
}
}
Aggregations