[java-oidc-common] 17/35: Remove key usage check from criterion credential resolver

Phil Smart philip.smart at jisc.ac.uk
Tue Sep 20 14:19:17 UTC 2022


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

philsmart pushed a commit to branch dev/JCOMOIDC-41
in repository java-oidc-common.

View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=cf20aba674ce97cfb1a8a01cd6c989b25738f099

commit cf20aba674ce97cfb1a8a01cd6c989b25738f099
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Thu Jul 14 16:36:28 2022 +0100

    Remove key usage check from criterion credential resolver
    
    This is covered by the UsageCredentialCriterion passed into the
    resolvers
---
 .../impl/CriterionCredentialResolver.java          | 56 +++-------------------
 1 file changed, 6 insertions(+), 50 deletions(-)

diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/CriterionCredentialResolver.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/CriterionCredentialResolver.java
index 11e8b38..35229ce 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/CriterionCredentialResolver.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/CriterionCredentialResolver.java
@@ -23,14 +23,9 @@ import java.util.List;
 import javax.annotation.Nonnull;
 
 import org.opensaml.security.credential.Credential;
-import org.opensaml.security.credential.UsageType;
-import org.opensaml.security.credential.impl.AbstractCriteriaFilteringCredentialResolver;
-import org.opensaml.security.criteria.KeyAlgorithmCriterion;
-import org.opensaml.security.criteria.UsageCriterion;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import net.shibboleth.oidc.security.credential.JOSEObjectCredentialResolver;
 import net.shibboleth.oidc.security.criterion.StaticCredentialCriterion;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
@@ -49,57 +44,18 @@ public class CriterionCredentialResolver extends BasicJOSEObjectCredentialResolv
     
     @Override
     protected Iterable<Credential> resolveFromSource(@Nonnull final CriteriaSet criteriaSet) throws ResolverException {        
-        Constraint.isNotNull(criteriaSet, "CriteriaSet was null");
-        
-        final UsageType usage = getEffectiveUsageInput(criteriaSet);
+        Constraint.isNotNull(criteriaSet, "CriteriaSet was null");       
         
         if (criteriaSet.contains(StaticCredentialCriterion.class)) {
             final StaticCredentialCriterion credentialCriterion = criteriaSet.get(StaticCredentialCriterion.class);
-            final Credential credential = credentialCriterion.getCredential();
-            if (matchUsage(credential.getUsageType(), usage)) { 
-                
-                log.debug("Selected key '{}', for usage '{}'", credential.getKeyNames(),usage);
-                return List.of(credential);                
-            } else {
-                log.warn("Usage type of credential from criteria did not match the effective usage input");
-                return Collections.emptyList();
-            }
+            final Credential credential = credentialCriterion.getCredential();          
+            log.debug("Extracted key '{}', from criterion", credential.getKeyNames());
+            return List.of(credential);               
+            
         } else {
-            log.warn("Criteria did not contain a StaticCredentialCriterion " 
-                    + "could not perform resolution");
+            log.trace("Criteria did not contain a StaticCredentialCriterion");
             return Collections.emptyList();
         }
     }
     
-    //FIXME are these needed if we have an evaluable usage type?
-    /**
-     * Match usage enum type values from credential in the criteria set to the usage in the criteria.
-     * 
-     * @param credentialUsage the value from the credential in the criteria set
-     * @param criteriaUsage the value from credential criteria
-     * @return true if the two usage specifiers match for purposes of resolving credentials, false otherwise
-     */
-    protected boolean matchUsage(@Nonnull final UsageType credentialUsage, @Nonnull final UsageType criteriaUsage) {
-        if (credentialUsage == UsageType.UNSPECIFIED || criteriaUsage == UsageType.UNSPECIFIED) {
-            return true;
-        }
-        return credentialUsage == criteriaUsage;
-    }
-
-    /**
-     * Get the effective {@link UsageType} input to use.
-     * 
-     * @param criteriaSet the criteria set being processed
-     * @return the effective usage value
-     */
-    @Nonnull protected UsageType getEffectiveUsageInput(@Nonnull final CriteriaSet criteriaSet) {
-        final UsageCriterion usageCriteria = criteriaSet.get(UsageCriterion.class);
-        if (usageCriteria != null) {
-            return usageCriteria.getUsage();
-        }
-        return UsageType.UNSPECIFIED; 
-    }
-
-
-
 }

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


More information about the commits mailing list