Pull request #667: RED-6362 - Cannot add KMS signature
Merge in RED/persistence-service from bugfix/RED-6362-kms to master * commit '52480314c35562b8f15e7cee4e6b5f87538b1a3a': RED-6362 - Cannot add KMS signature - update saveDigitalSignatureKms signature - move the convert from DigitalSignatureKms to DigitalSignatureKmsEntity to the service - remove the magicConvertor which cause problem for the certificate
This commit is contained in:
commit
f2a53d4da4
@ -117,7 +117,7 @@ public class DigitalSignatureController implements DigitalSignatureResource {
|
|||||||
@PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')")
|
@PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')")
|
||||||
public DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature) {
|
public DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature) {
|
||||||
|
|
||||||
DigitalSignatureKmsViewModel result = convert(digitalSignatureKmsService.saveDigitalSignature(convert(digitalSignature)));
|
DigitalSignatureKmsViewModel result = convert(digitalSignatureKmsService.saveDigitalSignature(digitalSignature));
|
||||||
auditPersistenceService.insertRecord(AuditRequest.builder()
|
auditPersistenceService.insertRecord(AuditRequest.builder()
|
||||||
.userId(KeycloakSecurity.getUserId())
|
.userId(KeycloakSecurity.getUserId())
|
||||||
.objectId(DIGITAL_SIGNATURE_AUDIT_ID)
|
.objectId(DIGITAL_SIGNATURE_AUDIT_ID)
|
||||||
@ -162,20 +162,6 @@ public class DigitalSignatureController implements DigitalSignatureResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private DigitalSignatureKmsEntity convert(DigitalSignatureKms digitalSignatureKms) {
|
|
||||||
|
|
||||||
return DigitalSignatureKmsEntity.builder()
|
|
||||||
.certificate(digitalSignatureKms.getCertificate().getBytes(StandardCharsets.UTF_8))
|
|
||||||
.kmsAccessKey(digitalSignatureKms.getKmsAccessKey())
|
|
||||||
.kmsKeyId(digitalSignatureKms.getKmsKeyId())
|
|
||||||
.kmsRegion(digitalSignatureKms.getKmsRegion())
|
|
||||||
.kmsSecretKey(digitalSignatureKms.getKmsSecretKey())
|
|
||||||
.kmsServiceEndpoint(digitalSignatureKms.getKmsServiceEndpoint())
|
|
||||||
.certificateName(digitalSignatureKms.getCertificateName())
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private DigitalSignatureEntity convert(DigitalSignatureViewModel digitalSignature) {
|
private DigitalSignatureEntity convert(DigitalSignatureViewModel digitalSignature) {
|
||||||
|
|
||||||
return DigitalSignatureEntity.builder()
|
return DigitalSignatureEntity.builder()
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package com.iqser.red.service.persistence.management.v1.processor.service;
|
package com.iqser.red.service.persistence.management.v1.processor.service;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -10,7 +12,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
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.management.v1.processor.service.persistence.repository.DigitalSignatureKmsRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DigitalSignatureKms;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.DigitalSignatureKms;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.DigitalSignatureType;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.DigitalSignatureType;
|
||||||
|
|
||||||
@ -29,11 +30,11 @@ public class DigitalSignatureKmsService {
|
|||||||
private final PDFTronClient pdfTronRedactionClient;
|
private final PDFTronClient pdfTronRedactionClient;
|
||||||
|
|
||||||
|
|
||||||
public DigitalSignatureKmsEntity saveDigitalSignature(DigitalSignatureKmsEntity digitalSignature) {
|
public DigitalSignatureKmsEntity saveDigitalSignature(DigitalSignatureKms digitalSignatureKms) {
|
||||||
|
|
||||||
log.info("Validate digital KMS signature before saving");
|
log.info("Validate digital KMS signature before saving");
|
||||||
try {
|
try {
|
||||||
pdfTronRedactionClient.testDigitalSignatureKms(MagicConverter.convert(digitalSignature, DigitalSignatureKms.class));
|
pdfTronRedactionClient.testDigitalSignatureKms(digitalSignatureKms);
|
||||||
} catch (FeignException e) {
|
} catch (FeignException e) {
|
||||||
if (e.status() == HttpStatus.BAD_REQUEST.value()) {
|
if (e.status() == HttpStatus.BAD_REQUEST.value()) {
|
||||||
throw new BadRequestException(e.getMessage(), e);
|
throw new BadRequestException(e.getMessage(), e);
|
||||||
@ -41,6 +42,7 @@ public class DigitalSignatureKmsService {
|
|||||||
throw new BadRequestException("Could not validate digital KMS signature", e);
|
throw new BadRequestException("Could not validate digital KMS signature", e);
|
||||||
}
|
}
|
||||||
log.info("Digital KMS signature is valid");
|
log.info("Digital KMS signature is valid");
|
||||||
|
DigitalSignatureKmsEntity digitalSignature = convert(digitalSignatureKms);
|
||||||
|
|
||||||
encrypt(digitalSignature);
|
encrypt(digitalSignature);
|
||||||
var result = digitalSignatureKmsRepository.save(digitalSignature);
|
var result = digitalSignatureKmsRepository.save(digitalSignature);
|
||||||
@ -85,4 +87,17 @@ public class DigitalSignatureKmsService {
|
|||||||
digitalSignatureTypeService.deleteDigitalSignatureType();
|
digitalSignatureTypeService.deleteDigitalSignatureType();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private DigitalSignatureKmsEntity convert(DigitalSignatureKms digitalSignatureKms) {
|
||||||
|
|
||||||
|
return DigitalSignatureKmsEntity.builder()
|
||||||
|
.certificate(digitalSignatureKms.getCertificate().getBytes(StandardCharsets.UTF_8))
|
||||||
|
.kmsAccessKey(digitalSignatureKms.getKmsAccessKey())
|
||||||
|
.kmsKeyId(digitalSignatureKms.getKmsKeyId())
|
||||||
|
.kmsRegion(digitalSignatureKms.getKmsRegion())
|
||||||
|
.kmsSecretKey(digitalSignatureKms.getKmsSecretKey())
|
||||||
|
.kmsServiceEndpoint(digitalSignatureKms.getKmsServiceEndpoint())
|
||||||
|
.certificateName(digitalSignatureKms.getCertificateName())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user