[java-idp-plugin-vci] 02/03: Apply new abstract action for perfoming actions on resource originated credential configurations

Codeberg noreply at shibboleth.net
Wed Dec 31 12:10:33 UTC 2025


This is an automated email from the git hooks/post-receive script.

codeberg pushed a commit to branch dev/W3CCred
in repository java-idp-plugin-vci.

View the commit online:
https://codeberg.org/Shibboleth/java-idp-plugin-vci/commit/4c281958d6f125e827cb9830d04f165958b7cae4

commit 4c281958d6f125e827cb9830d04f165958b7cae4
Author: jlauros <janne.lauros at csc.fi>
AuthorDate: Wed Dec 31 10:15:08 2025 +0200

    Apply new abstract action for perfoming actions on resource originated credential configurations
---
 .../profile/impl/ValidateCredentialOffering.java   | 41 ++--------------------
 1 file changed, 3 insertions(+), 38 deletions(-)

diff --git a/openid-vci-impl/src/main/java/org/geant/shibboleth/plugin/openidvci/profile/impl/ValidateCredentialOffering.java b/openid-vci-impl/src/main/java/org/geant/shibboleth/plugin/openidvci/profile/impl/ValidateCredentialOffering.java
index ca153cf..9f5a48c 100644
--- a/openid-vci-impl/src/main/java/org/geant/shibboleth/plugin/openidvci/profile/impl/ValidateCredentialOffering.java
+++ b/openid-vci-impl/src/main/java/org/geant/shibboleth/plugin/openidvci/profile/impl/ValidateCredentialOffering.java
@@ -16,12 +16,10 @@
 
 package org.geant.shibboleth.plugin.openidvci.profile.impl;
 
-import java.io.IOException;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
 
-import org.geant.shibboleth.plugin.openidvci.credential.CredentialConfigurations;
 import org.geant.shibboleth.plugin.openidvci.messaging.context.CredentialOfferContext;
 import org.geant.shibboleth.plugin.openidvci.messaging.impl.CredentialOfferRequest;
 import org.geant.shibboleth.plugin.openidvci.profile.OpenIDVCIEventIds;
@@ -29,13 +27,7 @@ import org.opensaml.profile.action.ActionSupport;
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import net.shibboleth.shared.resource.Resource;
-import net.shibboleth.idp.profile.AbstractProfileAction;
-import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.shared.component.ComponentInitializationException;
-import net.shibboleth.shared.logic.Constraint;
 
 /**
  * Action validates that there is a credential offering matching the request.
@@ -48,30 +40,17 @@ import net.shibboleth.shared.logic.Constraint;
  * supported configuration.
  * 
  */
-public class ValidateCredentialOffering extends AbstractProfileAction {
+public class ValidateCredentialOffering extends AbstractCredentialValidationAction {
 
     /** Class logger. */
     @Nonnull
     private Logger log = LoggerFactory.getLogger(ValidateCredentialOffering.class);
 
-    /** The supported credentials file. */
-    @NonnullAfterInit
-    private Resource credentialsResource;
-
-    /** The supported credentials parsed from file . */
-    @NonnullBeforeExec
-    private CredentialConfigurations configurations;
-
     /** The requested credential configuration identifiers . */
     @NonnullBeforeExec
     private Set<String> credentialConfIds;
 
     /** The supported credentials file. */
-    public void setCredentialsResource(@Nonnull @NotEmpty Resource resource) {
-        assert resource != null;
-        assert resource.exists();
-        credentialsResource = resource;
-    }
 
     /**
      * Inbound {@link CredentialOfferRequest}.
@@ -79,13 +58,6 @@ public class ValidateCredentialOffering extends AbstractProfileAction {
     @NonnullBeforeExec
     private CredentialOfferRequest request;
 
-    /** {@inheritDoc} */
-    @Override
-    protected void doInitialize() throws ComponentInitializationException {
-        super.doInitialize();
-        Constraint.isNotNull(credentialsResource, "Credentials resource cannot be null");
-    }
-
     /** {@inheritDoc} */
     @Override
     protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
@@ -100,13 +72,6 @@ public class ValidateCredentialOffering extends AbstractProfileAction {
         credentialConfIds = request.getPreAuthorizedCredentials() != null
                 ? request.getPreAuthorizedCredentials().keySet()
                 : Set.copyOf(request.getCodeCredentials());
-        try {
-            configurations = CredentialConfigurations.parse(credentialsResource);
-        } catch (IOException e) {
-            log.error("{} Parsing credential configuration failed.", getLogPrefix(), e);
-            ActionSupport.buildEvent(profileRequestContext, OpenIDVCIEventIds.NO_CREDENTIAL_CONFIGURATION);
-            return false;
-        }
         return super.doPreExecute(profileRequestContext);
     }
 
@@ -114,7 +79,7 @@ public class ValidateCredentialOffering extends AbstractProfileAction {
     @Override
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
         credentialConfIds.forEach(id -> {
-            if (!configurations.getCredentialConfigurations().keySet().contains(id)) {
+            if (!getCredentialConfigurations().getCredentialConfigurations().keySet().contains(id)) {
                 log.error("{} Requested credential configuration id {} is not supported", getLogPrefix(), id);
                 ActionSupport.buildEvent(profileRequestContext, OpenIDVCIEventIds.NO_CREDENTIALS_REQUEST);
                 return;
@@ -122,7 +87,7 @@ public class ValidateCredentialOffering extends AbstractProfileAction {
         });
 
         CredentialOfferContext ctx = new CredentialOfferContext();
-        ctx.setCredentialConfigurations(configurations);
+        ctx.setCredentialConfigurations(getCredentialConfigurations());
         ctx.setValidatedPreAuthorizedCredentials(request.getPreAuthorizedCredentials());
         ctx.setValidatedCodeCredentials(request.getCodeCredentials());
         ctx.setCredentialOfferTxCode(request.getCredentialOfferTxCode());

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list