From 517b741a1ea1dcdea433e178c031bcf4af5efb90 Mon Sep 17 00:00:00 2001 From: Mustafa Date: Wed, 20 Dec 2023 12:02:18 +0100 Subject: [PATCH] fix: add if statement for creating VC --- .../service/HoldersCredentialService.java | 7 +++++- .../utils/CommonUtils.java | 23 +++++++++++-------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/service/HoldersCredentialService.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/service/HoldersCredentialService.java index f053b1535..670055051 100644 --- a/src/main/java/org/eclipse/tractusx/managedidentitywallets/service/HoldersCredentialService.java +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/service/HoldersCredentialService.java @@ -153,11 +153,16 @@ public VerifiableCredential issueCredential(Map data, String cal // get Key byte[] privateKeyBytes = walletKeyService.getPrivateKeyByWalletIdentifierAsBytes(issuerWallet.getId()); + // check if the expiryDate is set + Date expiryDate = null; + if (verifiableCredential.getExpirationDate() != null) { + expiryDate = Date.from(verifiableCredential.getExpirationDate()); + } // Create Credential HoldersCredential credential = CommonUtils.getHoldersCredential(verifiableCredential.getCredentialSubject().get(0), verifiableCredential.getTypes(), issuerWallet.getDidDocument(), privateKeyBytes, issuerWallet.getDid(), - verifiableCredential.getContext(), Date.from(verifiableCredential.getExpirationDate()), true); + verifiableCredential.getContext(), expiryDate, true); //Store Credential in holder table credential = create(credential); diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/utils/CommonUtils.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/utils/CommonUtils.java index 14e0a1aef..7308ba981 100644 --- a/src/main/java/org/eclipse/tractusx/managedidentitywallets/utils/CommonUtils.java +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/utils/CommonUtils.java @@ -114,16 +114,21 @@ private static VerifiableCredential createVerifiableCredential(DidDocument issue contexts.add(jwsUri); } + // check if the expiryDate is set + Instant expiryInstant = null; + if (expiryDate != null) { + expiryInstant = expiryDate.toInstant(); + } + URI id = URI.create(UUID.randomUUID().toString()); - VerifiableCredentialBuilder builder = - new VerifiableCredentialBuilder() - .context(contexts) - .id(URI.create(issuerDoc.getId() + "#" + id)) - .type(verifiableCredentialType) - .issuer(issuerDoc.getId()) - .expirationDate(expiryDate.toInstant()) - .issuanceDate(Instant.now()) - .credentialSubject(verifiableCredentialSubject); + VerifiableCredentialBuilder builder = new VerifiableCredentialBuilder() + .context(contexts) + .id(URI.create(issuerDoc.getId() + "#" + id)) + .type(verifiableCredentialType) + .issuer(issuerDoc.getId()) + .expirationDate(expiryInstant) + .issuanceDate(Instant.now()) + .credentialSubject(verifiableCredentialSubject); LinkedDataProofGenerator generator = LinkedDataProofGenerator.newInstance(SignatureType.JWS);