[java-oidc-common] branch main updated: Return an empty list when no criteria supplied to provider resolver
Phil Smart
philip.smart at jisc.ac.uk
Tue May 2 09:25:24 UTC 2023
This is an automated email from the git hooks/post-receive script.
philsmart pushed a commit to branch main
in repository java-oidc-common.
View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=30cc6c5322f2f914fb611d06724fc8cc20edd7d5
The following commit(s) were added to refs/heads/main by this push:
new 30cc6c5 Return an empty list when no criteria supplied to provider resolver
30cc6c5 is described below
commit 30cc6c5322f2f914fb611d06724fc8cc20edd7d5
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Tue May 2 10:25:21 2023 +0100
Return an empty list when no criteria supplied to provider resolver
- Avoids unwanted error logging
- Provides the same semantics. The chaining resolver will iterate
through all the resolvers either way
---
.../impl/ProviderMetadataCredentialResolver.java | 4 ++--
.../impl/BaseMetadataCredentialResolverTest.java | 11 ++++++++---
.../impl/ClientInformationCredentialResolverTest.java | 14 --------------
.../impl/ProviderMetadataCredentialResolverTest.java | 11 ++++++++---
4 files changed, 18 insertions(+), 22 deletions(-)
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolver.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolver.java
index f633c8c..b54ba5d 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolver.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolver.java
@@ -114,8 +114,8 @@ public class ProviderMetadataCredentialResolver extends BasicJOSEObjectCredentia
return resolveFromMetadata(criteriaSet, metadata);
} else {
- throw new ResolverException("Criteria did not contain a ProviderMetadataCriterion "
- + "could not perform resolution");
+ log.debug("Criteria did not contain a ProviderMetadataCriterion could not perform resolution");
+ return Collections.emptySet();
}
}
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/BaseMetadataCredentialResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/BaseMetadataCredentialResolverTest.java
index 0ce9264..354e7dd 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/BaseMetadataCredentialResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/BaseMetadataCredentialResolverTest.java
@@ -57,7 +57,6 @@ import net.shibboleth.oidc.security.jose.criterion.KeyIdCriterion;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import net.shibboleth.utilities.java.support.component.InitializableComponent;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
/**
* Base unit test for the credential resolvers fetching the credentials from metadata.
@@ -129,11 +128,17 @@ public abstract class BaseMetadataCredentialResolverTest<T extends BasicJOSEObje
*/
protected abstract CriteriaSet buildInitialCriteriaSet() throws Exception;
- @Test(expectedExceptions = ResolverException.class)
+ @Test
public void testFail_EmptyCriteria() throws Exception {
((InitializableComponent) resolver).initialize();
criteria = new CriteriaSet();
- resolver.resolve(criteria);
+ final Iterable<Credential> creds = resolver.resolve(criteria);
+
+ assertNotNull(creds);
+ final List<Credential> credsList = new ArrayList<>();
+ creds.forEach(credsList::add);
+ // No keys
+ assertEquals(credsList.size(), 0);
}
@Test
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolverTest.java
index a2509de..3c5a6db 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolverTest.java
@@ -86,20 +86,6 @@ public class ClientInformationCredentialResolverTest extends BaseMetadataCredent
assertEquals(credsList.size(), 0);
}
- @Override
- @Test
- public void testFail_EmptyCriteria() throws Exception {
- ((InitializableComponent) resolver).initialize();
- criteria = new CriteriaSet();
- final Iterable<Credential> creds = resolver.resolve(criteria);
-
- assertNotNull(creds);
- final List<Credential> credsList = new ArrayList<>();
- creds.forEach(credsList::add);
- // No keys
- assertEquals(credsList.size(), 0);
- }
-
@Test
public void testSuccess_Secret() throws Exception {
((InitializableComponent) resolver).initialize();
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolverTest.java
index 86a8dfd..c710625 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolverTest.java
@@ -17,6 +17,10 @@
package net.shibboleth.oidc.security.credential.impl;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+
+import org.opensaml.security.credential.Credential;
import org.springframework.core.io.ClassPathResource;
import org.testng.annotations.Test;
@@ -30,7 +34,6 @@ import net.shibboleth.oidc.security.jose.criterion.ClientInformationCriterion;
import net.shibboleth.oidc.security.jose.criterion.ProviderMetadataCriterion;
import net.shibboleth.utilities.java.support.component.InitializableComponent;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
/**
* Unit tests for {@link ProviderMetadataCredentialResolver}.
@@ -59,13 +62,15 @@ public class ProviderMetadataCredentialResolverTest extends BaseMetadataCredenti
return criteria;
}
- @Test(expectedExceptions = ResolverException.class)
+ @Test
public void testFail_IncorrectCriteria() throws Exception {
((InitializableComponent) resolver).initialize();
// Needs ProviderMetadataCriterion or ClientInformationCriterion
criteria = new CriteriaSet();
criteria.add(new ClientInformationCriterion(new OIDCClientInformation(new ClientID("mockClientId"),
new OIDCClientMetadata())));
- resolver.resolve(criteria);
+ final Iterable<Credential> creds = resolver.resolve(criteria);
+ assertNotNull(creds);
+ assertFalse(creds.iterator().hasNext());
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list