diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtFactory.java b/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtFactory.java index 25a54008..578c40a1 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtFactory.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtFactory.java @@ -124,14 +124,23 @@ public SignedJWT create( public SignedJWT create( Did didIssuer, Did holderIssuer, - Date expDate, LinkedHashMap vc, IPrivateKey privateKey, String keyId) { final String issuer = didIssuer.toString(); final String subject = holderIssuer.toString(); - final Date issueDate = Date.from(Instant.parse((String) vc.get("issuanceDate"))); + // check if expirationDate is presented in VC then use it, otherwise null + final Date expireDateAsDate = + vc.containsKey("expirationDate") + ? Date.from(Instant.parse((String) vc.get("expirationDate"))) + : null; + + // check if issuanceDate is presented in VC then use it, otherwise null + final Date issueDate = + vc.containsKey("issuanceDate") + ? Date.from(Instant.parse((String) vc.get("issuanceDate"))) + : null; vc.remove(Verifiable.PROOF); @@ -140,7 +149,7 @@ public SignedJWT create( .issuer(issuer) .subject(subject) .claim("vc", vc) - .expirationTime(expDate) + .expirationTime(expireDateAsDate) .issueTime(issueDate) .build(); diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/serialization/jwt/SerializedJwtVCFactory.java b/src/main/java/org/eclipse/tractusx/ssi/lib/serialization/jwt/SerializedJwtVCFactory.java index 45b7b6a8..2a6c9767 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/serialization/jwt/SerializedJwtVCFactory.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/serialization/jwt/SerializedJwtVCFactory.java @@ -22,7 +22,6 @@ package org.eclipse.tractusx.ssi.lib.serialization.jwt; import com.nimbusds.jwt.SignedJWT; -import java.util.Date; import org.eclipse.tractusx.ssi.lib.crypt.IPrivateKey; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.verifiable.credential.VerifiableCredential; @@ -31,7 +30,6 @@ public interface SerializedJwtVCFactory { SignedJWT createVCJwt( Did issuer, Did holder, - Date expDate, VerifiableCredential credentials, IPrivateKey privateKey, String keyId); diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/serialization/jwt/SerializedJwtVCFactoryImpl.java b/src/main/java/org/eclipse/tractusx/ssi/lib/serialization/jwt/SerializedJwtVCFactoryImpl.java index 677de028..12c7497a 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/serialization/jwt/SerializedJwtVCFactoryImpl.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/serialization/jwt/SerializedJwtVCFactoryImpl.java @@ -22,7 +22,6 @@ package org.eclipse.tractusx.ssi.lib.serialization.jwt; import com.nimbusds.jwt.SignedJWT; -import java.util.Date; import java.util.LinkedHashMap; import lombok.RequiredArgsConstructor; import org.eclipse.tractusx.ssi.lib.crypt.IPrivateKey; @@ -38,12 +37,11 @@ public class SerializedJwtVCFactoryImpl implements SerializedJwtVCFactory { public SignedJWT createVCJwt( Did issuer, Did holder, - Date expDate, VerifiableCredential credentials, IPrivateKey privateKey, String keyId) { var clonedVC = new LinkedHashMap(); clonedVC.putAll(credentials); - return signedJwtFactory.create(issuer, holder, expDate, clonedVC, privateKey, keyId); + return signedJwtFactory.create(issuer, holder, clonedVC, privateKey, keyId); } }