[java-idp-plugin-vci] branch dev/VCDM updated: Include credential id if part of definition
Codeberg
noreply at shibboleth.net
Tue Apr 28 07:59:01 UTC 2026
This is an automated email from the git hooks/post-receive script.
codeberg pushed a commit to branch dev/VCDM
in repository java-idp-plugin-vci.
View the commit online:
https://codeberg.org/Shibboleth/java-idp-plugin-vci/commit/bba467ef8a865e037265cfe297787d867188162c
The following commit(s) were added to refs/heads/dev/VCDM by this push:
new bba467e Include credential id if part of definition
bba467e is described below
commit bba467ef8a865e037265cfe297787d867188162c
Author: Janne Lauros <janne.lauros at csc.fi>
AuthorDate: Tue Apr 28 10:58:47 2026 +0300
Include credential id if part of definition
---
.../openidvci/credential/CredentialDefinition.java | 28 ++++++++++++++++++----
.../credential/CredentialDefinitionTest.java | 3 ++-
.../credentials/CredentialDefinition.json | 1 +
...FormJsonLdSelectiveDisclosureJWTCredential.java | 1 +
4 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/openid-vci-api/src/main/java/org/geant/shibboleth/plugin/openidvci/credential/CredentialDefinition.java b/openid-vci-api/src/main/java/org/geant/shibboleth/plugin/openidvci/credential/CredentialDefinition.java
index e8526eb..96f3c48 100644
--- a/openid-vci-api/src/main/java/org/geant/shibboleth/plugin/openidvci/credential/CredentialDefinition.java
+++ b/openid-vci-api/src/main/java/org/geant/shibboleth/plugin/openidvci/credential/CredentialDefinition.java
@@ -24,7 +24,9 @@ import javax.annotation.Nullable;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.nimbusds.oauth2.sdk.ParseException;
@@ -46,6 +48,12 @@ public class CredentialDefinition {
@JsonProperty("@context")
private final List<String> context;
+ /** Id of credential definition. */
+ @Nullable
+ @JsonProperty("id")
+ @JsonInclude(Include.NON_NULL)
+ private final String id;
+
/** Type of credential definition. */
@Nonnull
@JsonProperty("type")
@@ -55,14 +63,16 @@ public class CredentialDefinition {
* Constructor.
*
* @param context Context of credential definition
+ * @param id Id of credential definition
* @param type Type of credential definition
*/
- private CredentialDefinition(@JsonProperty("@context") @Nullable List<String> context,
- @JsonProperty("type") @Nullable List<String> type) {
+ private CredentialDefinition(@JsonProperty("@context") @Nonnull List<String> context,
+ @JsonProperty("id") @Nullable String id, @JsonProperty("type") @Nonnull List<String> type) {
assert context != null;
assert type != null;
this.context = context;
this.type = type;
+ this.id = id;
}
/**
@@ -75,6 +85,16 @@ public class CredentialDefinition {
return context;
}
+ /**
+ * Get Id of credential definition.
+ *
+ * @return Id of credential definition
+ */
+ @Nullable
+ public String getId() {
+ return id;
+ }
+
/**
* Get type of credential definition.
*
@@ -109,10 +129,10 @@ public class CredentialDefinition {
@JsonCreator
public static CredentialDefinition of(@JsonProperty("@context") @Nullable List<String> context,
- @JsonProperty("type") @Nullable List<String> type) {
+ @JsonProperty("id") @Nullable String id, @JsonProperty("type") @Nullable List<String> type) {
if (context == null || type == null) {
return null;
}
- return new CredentialDefinition(context, type);
+ return new CredentialDefinition(context, id, type);
}
}
diff --git a/openid-vci-api/src/test/java/org/geant/shibboleth/plugin/openidvci/credential/CredentialDefinitionTest.java b/openid-vci-api/src/test/java/org/geant/shibboleth/plugin/openidvci/credential/CredentialDefinitionTest.java
index e55aecd..ce9f2b3 100644
--- a/openid-vci-api/src/test/java/org/geant/shibboleth/plugin/openidvci/credential/CredentialDefinitionTest.java
+++ b/openid-vci-api/src/test/java/org/geant/shibboleth/plugin/openidvci/credential/CredentialDefinitionTest.java
@@ -48,8 +48,9 @@ public class CredentialDefinitionTest {
"https://www.w3.org/2018/credentials/examples/v1");
Assert.assertEquals(credentialDefinition.getType().get(0), "VerifiableCredential");
Assert.assertEquals(credentialDefinition.getType().get(1), "UniversityDegreeCredential");
+ Assert.assertEquals(credentialDefinition.getId(), "http://university.example/credentials/3732");
Assert.assertEquals(credentialDefinition.serialize(),
- "{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://www.w3.org/2018/credentials/examples/v1\"],\"type\":[\"VerifiableCredential\",\"UniversityDegreeCredential\"]}");
+ "{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://www.w3.org/2018/credentials/examples/v1\"],\"id\":\"http://university.example/credentials/3732\",\"type\":[\"VerifiableCredential\",\"UniversityDegreeCredential\"]}");
}
diff --git a/openid-vci-api/src/test/resources/credentials/CredentialDefinition.json b/openid-vci-api/src/test/resources/credentials/CredentialDefinition.json
index 5a74cd9..5b646e9 100644
--- a/openid-vci-api/src/test/resources/credentials/CredentialDefinition.json
+++ b/openid-vci-api/src/test/resources/credentials/CredentialDefinition.json
@@ -3,6 +3,7 @@
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
+ "id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"UniversityDegreeCredential"
diff --git a/openid-vci-impl/src/main/java/org/geant/shibboleth/plugin/openidvci/profile/impl/FormJsonLdSelectiveDisclosureJWTCredential.java b/openid-vci-impl/src/main/java/org/geant/shibboleth/plugin/openidvci/profile/impl/FormJsonLdSelectiveDisclosureJWTCredential.java
index 27a1fb8..f911795 100644
--- a/openid-vci-impl/src/main/java/org/geant/shibboleth/plugin/openidvci/profile/impl/FormJsonLdSelectiveDisclosureJWTCredential.java
+++ b/openid-vci-impl/src/main/java/org/geant/shibboleth/plugin/openidvci/profile/impl/FormJsonLdSelectiveDisclosureJWTCredential.java
@@ -129,6 +129,7 @@ public class FormJsonLdSelectiveDisclosureJWTCredential extends AbstractProfileA
try {
credentials.add(new JWTClaimsSet.Builder(cred.toJWTClaimsSet())
.claim("@context", ctx.getCredentialConfiguration().getCredentialDefinition().getContext())
+ .claim("id", ctx.getCredentialConfiguration().getCredentialDefinition().getId())
.claim("type", ctx.getCredentialConfiguration().getCredentialDefinition().getType())
.claim("credentialSubject", credentialSubject).claim("_sd_alg", "sha-256").build());
} catch (ParseException e) {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list