in src/main/java/com/epam/digital/data/platform/history/service/UserInfoRetrieveService.java [59:106]
public UserInfo getUserInfo(HistoryTableRowDdmInfo tableDdmInfo) {
if (!signatureEnabled) {
log.info("Signature processing is disabled");
return EMPTY_USER_INFO;
}
var key = tableDdmInfo.getDigitalSign();
if (key == null) {
log.error("Signature not saved. Key == null");
return EMPTY_USER_INFO;
}
var content = historicSignatureFormDataStorageService.getFormData(key);
if (content.isEmpty()) {
log.error("Signature not found for key {}", key);
return EMPTY_USER_INFO;
}
String signature;
String data;
try {
var formDataDto = content.get();
data = objectMapper.writeValueAsString(formDataDto.getData());
signature = formDataDto.getSignature();
} catch (JsonProcessingException e) {
throw new RuntimeJsonMappingException(e.getMessage());
}
OwnerResponseDto owner;
try {
owner = digitalSignatureRestClient.getOwnerInfinite(
new VerificationRequestDto(signature, data));
} catch (BadRequestException e) {
log.error("Bad request. {}", e.getErrorDto().getMessage());
return EMPTY_USER_INFO;
} catch (InternalServerErrorException e) {
log.error("Internal server error. {}", e.getErrorDto().getMessage());
return EMPTY_USER_INFO;
} catch (SignatureValidationException e) {
log.error("Signature validation error. {}", e.getErrorDto().getMessage());
return EMPTY_USER_INFO;
}
if (owner == null) {
log.error("Failed to get the owner of the digital signature");
return EMPTY_USER_INFO;
}
return new UserInfo(owner.getFullName(), owner.getDrfo(), owner.getEdrpou());
}