in src/main/java/com/epam/digital/data/platform/kafkaapi/core/service/DigitalSignatureService.java [100:123]
private boolean verify(String key, String signature, String data) {
try {
log.info("Verifying Signature stored by key: {}", key);
VerificationResponseDto responseDto =
digitalSealRestClient.verify(new VerificationRequestDto(signature, data));
return responseDto.isValid();
} catch (InvalidSignatureException e) {
log.info("Signature verification failed", e);
return false;
} catch (BadRequestException e) {
var message = String.format(
"Call to external digital signature service violates an internal contract: %s",
e.getMessage());
throw new ExternalCommunicationException(message, e, Status.INTERNAL_CONTRACT_VIOLATION);
} catch (InternalServerErrorException e) {
var message = String.format(
"External digital signature service has internal server error: %s", e.getMessage());
throw new ExternalCommunicationException(message, e, Status.THIRD_PARTY_SERVICE_UNAVAILABLE);
} catch (RetryableException e) {
var message = String.format("External digital signature service not responding: %s",
e.getMessage());
throw new ExternalCommunicationException(message, e, Status.THIRD_PARTY_SERVICE_UNAVAILABLE);
}
}