diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureKmsService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureKmsService.java index 741f1f7ca..ac8a2ff9f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureKmsService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureKmsService.java @@ -3,16 +3,20 @@ package com.iqser.red.service.persistence.management.v1.processor.service; import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; import org.springframework.beans.BeanUtils; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DigitalSignatureEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DigitalSignatureKmsEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.exception.InternalServerErrorException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DigitalSignatureKmsRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.DigitalSignatureKms; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.DigitalSignatureType; +import feign.FeignException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -30,7 +34,14 @@ public class DigitalSignatureKmsService { public DigitalSignatureKmsEntity saveDigitalSignature(DigitalSignatureKmsEntity digitalSignature) { log.info("Validate digital KMS signature before saving"); - pdfTronRedactionClient.testDigitalSignatureKms(convert(digitalSignature, DigitalSignatureKms.class)); + try { + pdfTronRedactionClient.testDigitalSignatureKms(convert(digitalSignature, DigitalSignatureKms.class)); + } catch (FeignException e) { + if (e.status() == HttpStatus.BAD_REQUEST.value()) { + throw new BadRequestException(e.getMessage(), e); + } + throw new InternalServerErrorException("Could not validate digital KMS signature", e); + } log.info("Digital KMS signature is valid"); encrypt(digitalSignature);