use of org.apache.cxf.xkms.model.xkms.KeyBindingType in project cxf by apache.
the class XKMSService method createKeyBinding.
// TODO refactoring into factory class?
public static KeyBindingType createKeyBinding(ValidateResultType result) {
KeyBindingType binding = new KeyBindingType();
binding.setId(XKMSResponseFactory.generateUniqueID());
result.getKeyBinding().add(binding);
StatusType status = new StatusType();
binding.setStatus(status);
return binding;
}
use of org.apache.cxf.xkms.model.xkms.KeyBindingType in project cxf by apache.
the class XKMSService method validate.
@Override
public ValidateResultType validate(ValidateRequestType request) {
ValidateResultType response = XKMSResponseFactory.createResponse(request, new ValidateResultType());
try {
validateRequest(request);
// Create basic response
KeyBindingType binding = createKeyBinding(response);
// Validate request
for (Validator validator : validators) {
StatusType status = validator.validate(request);
addValidationReasons(binding, status);
}
resolveValidationStatus(binding);
return response;
} catch (Exception e) {
return handleException("recover", e, response);
}
}
use of org.apache.cxf.xkms.model.xkms.KeyBindingType 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);
}
}
use of org.apache.cxf.xkms.model.xkms.KeyBindingType 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;
}
Aggregations