[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