From 06f4e9714793683a8c601dd7799eb4d4918ced8e Mon Sep 17 00:00:00 2001 From: Giulia Tremolada <124147597+giulia-tremolada@users.noreply.github.com> Date: Thu, 26 Sep 2024 09:18:25 +0200 Subject: [PATCH] [SELC-5507] feat: namirial implementation in onboarding-crypto sdk (#500) --- README.md | 22 +++--- apps/onboarding-functions/pom.xml | 6 +- .../config/OnboardingFunctionConfig.java | 5 ++ apps/onboarding-ms/pom.xml | 4 +- apps/pom.xml | 2 +- libs/onboarding-sdk-azure-storage/pom.xml | 2 +- libs/onboarding-sdk-common/pom.xml | 2 +- libs/onboarding-sdk-crypto/pom.xml | 24 ++++++- .../crypto/ArubaPkcs7HashSignServiceImpl.java | 5 ++ .../crypto/NamiralSignServiceImpl.java | 50 +++++++++++++ .../NamirialPkcs7HashSignServiceImpl.java | 24 +++++++ .../crypto/NamirialSignService.java | 8 +++ .../crypto/PadesSignServiceImpl.java | 45 ++++++++---- .../crypto/Pkcs7HashSignService.java | 7 ++ .../crypto/Pkcs7HashSignServiceImpl.java | 11 ++- .../crypto/client/NamirialHttpClient.java | 72 +++++++++++++++++++ .../onboarding/crypto/entity/Credentials.java | 28 ++++++++ .../onboarding/crypto/entity/Preferences.java | 17 +++++ .../onboarding/crypto/entity/SignRequest.java | 36 ++++++++++ libs/onboarding-sdk-pom/pom.xml | 2 +- libs/onboarding-sdk-product/pom.xml | 5 +- test-coverage/pom.xml | 8 +-- 22 files changed, 341 insertions(+), 44 deletions(-) create mode 100644 libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamiralSignServiceImpl.java create mode 100644 libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamirialPkcs7HashSignServiceImpl.java create mode 100644 libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamirialSignService.java create mode 100644 libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/client/NamirialHttpClient.java create mode 100644 libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/Credentials.java create mode 100644 libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/Preferences.java create mode 100644 libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/SignRequest.java diff --git a/README.md b/README.md index 47fb0641f..e7790f99b 100644 --- a/README.md +++ b/README.md @@ -44,16 +44,16 @@ trustworthy incremental builds, can only build java code natively, is recursive struggles with partial repo checkouts) but can be made good use of with some tricks and usage of a couple of lesser known command line switches. -| Action | in working directory | with Maven | -|:---------------------------------------------------------------------------------------------------|:----------------------:|:-----------------------------------------------------------------------------------| -| Build the world | `.` | `mvn clean package -DskipTests` | -| Run `onboarding-ms` | `.` | `java -jar apps/onboarding-ms/target/onboarding-ms-1.0.0-SNAPSHOT.jar` | -| Build and test the world | `.` | `mvn clean package` | -| Build the world | `./apps/onboarding-ms` | `mvn --file ../.. clean package -DskipTests` | -| Build `onboarding-ms` and its dependencies | `.` | `mvn --projects :onboarding-ms --also-make clean package -DskipTests` | -| Build `onboarding-ms` and its dependencies | `./apps/onboarding-ms` | `mvn --file ../.. --projects :onboarding-ms --also-make clean package -DskipTests` | -| Build `onboarding-sdk` and its dependents (aka. reverse dependencies or *rdeps* in Bazel parlance) | `.` | `mvn --projects :onboarding-sdk-pom --also-make-dependents clean package -DskipTests` | -| Print dependencies of `onboarding-sdk` | `./apps/onboarding-ms` | `mvn dependency:list` | -| Change version of `onboarding-sdk` | `.` | `mvn versions:set -DnewVersion=0.1.2 --projects :onboarding-sdk-pom ` | +| Action | in working directory | with Maven | +|:---------------------------------------------------------------------------------------------------|:----------------------:|:--------------------------------------------------------------------------------------| +| Build the world | `.` | `mvn clean package -DskipTests` | +| Run `onboarding-ms` | `.` | `java -jar apps/onboarding-ms/target/onboarding-ms-1.0.0-SNAPSHOT.jar` | +| Build and test the world | `.` | `mvn clean package` | +| Build the world | `./apps/onboarding-ms` | `mvn --file ../.. clean package -DskipTests` | +| Build `onboarding-ms` and its dependencies | `.` | `mvn --projects :onboarding-ms --also-make clean package -DskipTests` | +| Build `onboarding-ms` and its dependencies | `./apps/onboarding-ms` | `mvn --file ../.. --projects :onboarding-ms --also-make clean package -DskipTests` | +| Build `onboarding-sdk` and its dependents (aka. reverse dependencies or *rdeps* in Bazel parlance) | `.` | `mvn --projects :onboarding-sdk-pom --also-make-dependents clean package -DskipTests` | +| Print dependencies of `onboarding-sdk` | `./apps/onboarding-ms` | `mvn dependency:list` | +| Change version of `onboarding-sdk` | `.` | `mvn versions:set -DnewVersion=0.2.2 --projects :onboarding-sdk-pom ` | | Persist version of `onboarding-sdk` | `.` | `mvn versions:commit ` | diff --git a/apps/onboarding-functions/pom.xml b/apps/onboarding-functions/pom.xml index aeb73f5ea..735c2cbd5 100644 --- a/apps/onboarding-functions/pom.xml +++ b/apps/onboarding-functions/pom.xml @@ -193,17 +193,17 @@ it.pagopa.selfcare onboarding-sdk-crypto - 0.2.1 + 0.2.2 it.pagopa.selfcare onboarding-sdk-azure-storage - 0.2.1 + 0.2.2 it.pagopa.selfcare onboarding-sdk-product - 0.2.1 + 0.2.2 diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java index 26ecb43ba..c6552659b 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/config/OnboardingFunctionConfig.java @@ -65,6 +65,11 @@ public Pkcs7HashSignService arubaPkcs7HashSignService(){ public Pkcs7HashSignService disabledPkcs7HashSignService(){ log.info("Signature will be performed using Pkcs7HashSignService"); return new Pkcs7HashSignService(){ + @Override + public boolean returnsFullPdf() { + return false; + } + @Override public byte[] sign(InputStream inputStream) { log.info("Signature source is disabled, skipping signing input file"); diff --git a/apps/onboarding-ms/pom.xml b/apps/onboarding-ms/pom.xml index 1ecd481f1..4b207d701 100644 --- a/apps/onboarding-ms/pom.xml +++ b/apps/onboarding-ms/pom.xml @@ -237,12 +237,12 @@ it.pagopa.selfcare onboarding-sdk-azure-storage - 0.2.1 + 0.2.2 it.pagopa.selfcare onboarding-sdk-product - 0.2.1 + 0.2.2 diff --git a/apps/pom.xml b/apps/pom.xml index db6db6bdc..786906827 100644 --- a/apps/pom.xml +++ b/apps/pom.xml @@ -16,7 +16,7 @@ it.pagopa.selfcare onboarding-sdk-common - 0.2.1 + 0.2.2 diff --git a/libs/onboarding-sdk-azure-storage/pom.xml b/libs/onboarding-sdk-azure-storage/pom.xml index 30e98a31b..c44460f1c 100644 --- a/libs/onboarding-sdk-azure-storage/pom.xml +++ b/libs/onboarding-sdk-azure-storage/pom.xml @@ -6,7 +6,7 @@ it.pagopa.selfcare onboarding-sdk-pom - 0.2.1 + 0.2.2 ../onboarding-sdk-pom diff --git a/libs/onboarding-sdk-common/pom.xml b/libs/onboarding-sdk-common/pom.xml index 8589ea588..a21aefd70 100644 --- a/libs/onboarding-sdk-common/pom.xml +++ b/libs/onboarding-sdk-common/pom.xml @@ -4,7 +4,7 @@ it.pagopa.selfcare onboarding-sdk-pom - 0.2.1 + 0.2.2 ../onboarding-sdk-pom onboarding-sdk-common diff --git a/libs/onboarding-sdk-crypto/pom.xml b/libs/onboarding-sdk-crypto/pom.xml index 978776284..ce8f5a039 100644 --- a/libs/onboarding-sdk-crypto/pom.xml +++ b/libs/onboarding-sdk-crypto/pom.xml @@ -4,12 +4,15 @@ it.pagopa.selfcare onboarding-sdk-pom - 0.2.1 + 0.2.2 ../onboarding-sdk-pom onboarding-sdk-crypto onboarding-sdk-crypto http://maven.apache.org + + 1.45.0 + @@ -75,6 +78,25 @@ 2.1.3 test + + com.google.http-client + google-http-client + ${google-http-client.version} + + + com.google.http-client + google-http-client-apache-v2 + ${google-http-client.version} + + + com.google.http-client + google-http-client-jackson2 + ${google-http-client.version} + + + com.fasterxml.jackson.core + jackson-databind + diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/ArubaPkcs7HashSignServiceImpl.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/ArubaPkcs7HashSignServiceImpl.java index 2ef91123c..72067aa9b 100644 --- a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/ArubaPkcs7HashSignServiceImpl.java +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/ArubaPkcs7HashSignServiceImpl.java @@ -15,4 +15,9 @@ public ArubaPkcs7HashSignServiceImpl(ArubaSignService arubaSignService) { public byte[] sign(InputStream is) throws IOException { return arubaSignService.pkcs7Signhash(is); } + + @Override + public boolean returnsFullPdf() { + return false; + } } diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamiralSignServiceImpl.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamiralSignServiceImpl.java new file mode 100644 index 000000000..8dd1c014c --- /dev/null +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamiralSignServiceImpl.java @@ -0,0 +1,50 @@ +package it.pagopa.selfcare.onboarding.crypto; + +import it.pagopa.selfcare.onboarding.crypto.client.NamirialHttpClient; +import it.pagopa.selfcare.onboarding.crypto.entity.Credentials; +import it.pagopa.selfcare.onboarding.crypto.entity.Preferences; +import it.pagopa.selfcare.onboarding.crypto.entity.SignRequest; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; + + +public class NamiralSignServiceImpl implements NamirialSignService { + + private final NamirialHttpClient namirialHttpClient; + private final String username; + private final String password; + + // Constructor for manual dependency injection + public NamiralSignServiceImpl(String username, + String password + ) { + this.namirialHttpClient = new NamirialHttpClient(); + this.username = username; + this.password = password; + } + + @Override + public byte[] pkcs7Signhash(InputStream is) { + try { + + Path tempFilePath = Files.createTempFile("tempfile", ".pdf"); + File tempFile = tempFilePath.toFile(); + + // Copy InputStream data to the temporary file + Files.copy(is, tempFilePath, StandardCopyOption.REPLACE_EXISTING); + + Credentials credentials = new Credentials(username, password); + Preferences preferences = new Preferences("SHA256"); + SignRequest request = new SignRequest(tempFile, credentials, preferences); + + return namirialHttpClient.signDocument(request); + } catch (IOException e) { + throw new IllegalStateException("Something gone wrong when invoking Namirial in order to calculate pkcs7 hash sign request", e); + } + } +} \ No newline at end of file diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamirialPkcs7HashSignServiceImpl.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamirialPkcs7HashSignServiceImpl.java new file mode 100644 index 000000000..7e114ba9e --- /dev/null +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamirialPkcs7HashSignServiceImpl.java @@ -0,0 +1,24 @@ +package it.pagopa.selfcare.onboarding.crypto; + +import java.io.InputStream; + +public class NamirialPkcs7HashSignServiceImpl implements Pkcs7HashSignService { + + private final NamirialSignService namirialSignService; + + public NamirialPkcs7HashSignServiceImpl(NamirialSignService namirialSignService) { + this.namirialSignService = namirialSignService; + } + + + @Override + public byte[] sign(InputStream is) { + return namirialSignService.pkcs7Signhash(is); + } + + + @Override + public boolean returnsFullPdf() { + return true; + } +} \ No newline at end of file diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamirialSignService.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamirialSignService.java new file mode 100644 index 000000000..b28d0eeec --- /dev/null +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/NamirialSignService.java @@ -0,0 +1,8 @@ +package it.pagopa.selfcare.onboarding.crypto; + + +import java.io.InputStream; + +public interface NamirialSignService { + byte[] pkcs7Signhash(InputStream is); +} \ No newline at end of file diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/PadesSignServiceImpl.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/PadesSignServiceImpl.java index a08acc7fc..72bb865a7 100644 --- a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/PadesSignServiceImpl.java +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/PadesSignServiceImpl.java @@ -7,7 +7,9 @@ import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureOptions; import java.io.File; +import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.InputStream; import java.util.Calendar; public class PadesSignServiceImpl implements PadesSignService { @@ -20,21 +22,34 @@ public PadesSignServiceImpl(Pkcs7HashSignService pkcs7Signature) { public void padesSign(File pdfFile, File signedPdfFile, SignatureInformation signInfo) { CryptoUtils.createParentDirectoryIfNotExists(signedPdfFile); - try (FileOutputStream fos = new FileOutputStream(signedPdfFile); - PDDocument doc = PDDocument.load(pdfFile)){ - - PDSignature signature = new PDSignature(); - signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); - signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED); - signature.setName(signInfo.getName()); - signature.setLocation(signInfo.getLocation()); - signature.setReason(signInfo.getReason()); - signature.setSignDate(Calendar.getInstance()); - SignatureOptions signatureOptions = new SignatureOptions(); - signatureOptions.setPreferredSignatureSize(35944); - doc.addSignature(signature, this.pkcs7Signature, signatureOptions); - doc.saveIncremental(fos); - + try (FileOutputStream fos = new FileOutputStream(signedPdfFile)){ + + /** + * The following condition ensures that the method handles both types of services correctly: those that return full PDFs + * and those that return just the signature: + * - If the service provides a complete, signed PDF, the method simply writes the returned PDF bytes to the output file. + * - If the service returns only the PKCS7 signature, the PDFBox library is used to attach the signature to the PDF before saving it to the output. + */ + if(this.pkcs7Signature.returnsFullPdf()){ + try(InputStream pdfInput = new FileInputStream(pdfFile)){ + byte[] signedPdfBytes = this.pkcs7Signature.sign(pdfInput); + fos.write(signedPdfBytes); + } + } else { + try (PDDocument doc = PDDocument.load(pdfFile)) { + PDSignature signature = new PDSignature(); + signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); + signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED); + signature.setName(signInfo.getName()); + signature.setLocation(signInfo.getLocation()); + signature.setReason(signInfo.getReason()); + signature.setSignDate(Calendar.getInstance()); + SignatureOptions signatureOptions = new SignatureOptions(); + signatureOptions.setPreferredSignatureSize(35944); + doc.addSignature(signature, this.pkcs7Signature, signatureOptions); + doc.saveIncremental(fos); + } + } } catch (Exception var12) { throw new IllegalStateException(String.format("Something gone wrong while signing input pdf %s and storing it into %s", pdfFile.getAbsolutePath(), signedPdfFile.getAbsolutePath()), var12); } diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/Pkcs7HashSignService.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/Pkcs7HashSignService.java index f15152ac6..b6fcbaf3e 100644 --- a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/Pkcs7HashSignService.java +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/Pkcs7HashSignService.java @@ -3,4 +3,11 @@ import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureInterface; public interface Pkcs7HashSignService extends SignatureInterface { + + /** + * Determines whether the signing service returns a fully signed PDF. + * - If the service returns the entire PDF signed, this method should return true. + * - If the service returns only the PKCS7 signature, this method should return false. + */ + boolean returnsFullPdf(); } diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/Pkcs7HashSignServiceImpl.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/Pkcs7HashSignServiceImpl.java index 45f093e12..d6bea7fb1 100644 --- a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/Pkcs7HashSignServiceImpl.java +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/Pkcs7HashSignServiceImpl.java @@ -6,7 +6,9 @@ import it.pagopa.selfcare.onboarding.crypto.utils.CMSTypedDataInputStream; import org.bouncycastle.cert.X509CertificateHolder; import org.bouncycastle.cert.jcajce.JcaCertStore; -import org.bouncycastle.cms.*; +import org.bouncycastle.cms.CMSException; +import org.bouncycastle.cms.CMSSignedData; +import org.bouncycastle.cms.CMSSignedDataGenerator; import org.bouncycastle.cms.jcajce.JcaSignerInfoGeneratorBuilder; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.operator.ContentSigner; @@ -15,7 +17,8 @@ import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder; import org.bouncycastle.util.Store; -import java.io.*; +import java.io.IOException; +import java.io.InputStream; import java.security.cert.CertificateEncodingException; import java.util.Collections; @@ -54,4 +57,8 @@ public byte[] sign(InputStream is) throws IOException { } } + @Override + public boolean returnsFullPdf() { + return false; + } } diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/client/NamirialHttpClient.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/client/NamirialHttpClient.java new file mode 100644 index 000000000..ef9f062bb --- /dev/null +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/client/NamirialHttpClient.java @@ -0,0 +1,72 @@ +package it.pagopa.selfcare.onboarding.crypto.client; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.api.client.http.*; +import com.google.api.client.http.javanet.NetHttpTransport; +import it.pagopa.selfcare.onboarding.crypto.entity.SignRequest; +import org.apache.pdfbox.io.IOUtils; + +import java.io.IOException; +import java.io.InputStream; + +public class NamirialHttpClient { + + private static final String NAMIRIAL_BASE_URL = "https://sws.test.namirialtsp.com/SignEngineWeb"; + + private static final String NAMIRIAL_SIGN_PADES_URL = NAMIRIAL_BASE_URL + "/rest/service/signPAdES"; + + public byte[] signDocument(SignRequest request) throws IOException { + // Initialize HTTP Transport and Request Factory + HttpTransport httpTransport = new NetHttpTransport(); + HttpRequestFactory requestFactory = httpTransport.createRequestFactory(); + + // Create the multipart content + MultipartContent multipartContent = new MultipartContent(); + ObjectMapper objectMapper = new ObjectMapper(); + + + String credentials = objectMapper.writeValueAsString(request.getCredentials()); + String preferences = objectMapper.writeValueAsString(request.getPreferences()); + + + multipartContent.addPart( + new MultipartContent.Part( + new HttpHeaders().set("Content-Disposition", "form-data; name=\"file\"; filename=\""+ request.getFile().getName() +"\""), + new FileContent("application/pdf", request.getFile()) + ) + ); + + + + multipartContent.addPart( + new MultipartContent.Part( + new HttpHeaders().set("Content-Disposition", "form-data; name=\"credentials\""), + new ByteArrayContent("application/json", credentials.getBytes()) + ) + ); + + + multipartContent.addPart( + new MultipartContent.Part( + new HttpHeaders().set("Content-Disposition", "form-data; name=\"preferences\""), + new ByteArrayContent("application/json", preferences.getBytes()) + ) + ); + + // Build and execute the HTTP POST request + HttpRequest httpRequest = requestFactory.buildPostRequest( + new GenericUrl(NAMIRIAL_SIGN_PADES_URL), multipartContent); + + // Set any required headers + httpRequest.getHeaders().setContentType("multipart/form-data;"); + + + try { + HttpResponse httpResponse = httpRequest.execute(); + InputStream is = httpResponse.getContent(); + return IOUtils.toByteArray(is); + } catch (HttpResponseException e) { + throw new IllegalStateException("Something gone wrong when invoking Namirial in order to calculate pkcs7 hash sign request", e); + } + } +} \ No newline at end of file diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/Credentials.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/Credentials.java new file mode 100644 index 000000000..3a9b836f0 --- /dev/null +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/Credentials.java @@ -0,0 +1,28 @@ +package it.pagopa.selfcare.onboarding.crypto.entity; + +public class Credentials { + public String username; + public String password; + + public Credentials(String username, String password) { + this.username = username; + this.password = password; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + +} \ No newline at end of file diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/Preferences.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/Preferences.java new file mode 100644 index 000000000..50afc4d0a --- /dev/null +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/Preferences.java @@ -0,0 +1,17 @@ +package it.pagopa.selfcare.onboarding.crypto.entity; + +public class Preferences { + public String hashAlgorithm; + + public Preferences(String hashAlgorithm) { + this.hashAlgorithm = hashAlgorithm; + } + + public String getHashAlgorithm() { + return hashAlgorithm; + } + + public void setHashAlgorithm(String hashAlgorithm) { + this.hashAlgorithm = hashAlgorithm; + } +} \ No newline at end of file diff --git a/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/SignRequest.java b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/SignRequest.java new file mode 100644 index 000000000..c5190ac94 --- /dev/null +++ b/libs/onboarding-sdk-crypto/src/main/java/it/pagopa/selfcare/onboarding/crypto/entity/SignRequest.java @@ -0,0 +1,36 @@ +package it.pagopa.selfcare.onboarding.crypto.entity; + +import com.google.api.client.util.Key; + +import java.io.File; + +public class SignRequest { + + @Key("file") + private File file; + + @Key("credentials") + private Credentials credentials; + + @Key("preferences") + private Preferences preferences; + + // Constructors, getters, and setters + public SignRequest(File fileContent, Credentials credentials, Preferences preferences) { + this.file = fileContent; + this.preferences = preferences; + this.credentials = credentials; + } + + public File getFile() { + return file; + } + + public Credentials getCredentials() { + return credentials; + } + + public Preferences getPreferences() { + return preferences; + } +} \ No newline at end of file diff --git a/libs/onboarding-sdk-pom/pom.xml b/libs/onboarding-sdk-pom/pom.xml index 55fdb6a48..d560a7564 100644 --- a/libs/onboarding-sdk-pom/pom.xml +++ b/libs/onboarding-sdk-pom/pom.xml @@ -6,7 +6,7 @@ onboarding-sdk-pom pom onboarding-sdk-pom - 0.2.1 + 0.2.2 17 diff --git a/libs/onboarding-sdk-product/pom.xml b/libs/onboarding-sdk-product/pom.xml index c69eb2706..a8432354b 100644 --- a/libs/onboarding-sdk-product/pom.xml +++ b/libs/onboarding-sdk-product/pom.xml @@ -4,15 +4,16 @@ it.pagopa.selfcare onboarding-sdk-pom - 0.2.1 + 0.2.2 ../onboarding-sdk-pom onboarding-sdk-product onboarding-sdk-product - 0.2.1 + 0.2.2 2.15.2 + 0.2.2 diff --git a/test-coverage/pom.xml b/test-coverage/pom.xml index 2f0c86059..33c9be6d9 100644 --- a/test-coverage/pom.xml +++ b/test-coverage/pom.xml @@ -77,22 +77,22 @@ it.pagopa.selfcare onboarding-sdk-product - 0.2.1 + 0.2.2 it.pagopa.selfcare onboarding-sdk-common - 0.2.1 + 0.2.2 it.pagopa.selfcare onboarding-sdk-azure-storage - 0.2.1 + 0.2.2 it.pagopa.selfcare onboarding-sdk-crypto - 0.2.1 + 0.2.2