[java-oidc-common] branch main updated: Only add derived client secret credential to result if it's non-null.
Henri Mikkonen
henri.mikkonen at iki.fi
Tue May 2 13:02:23 UTC 2023
This is an automated email from the git hooks/post-receive script.
hjmikkon 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=d11fe8db52a52aa6cc26a1f33b8429cc7a2b3cc2
The following commit(s) were added to refs/heads/main by this push:
new d11fe8d Only add derived client secret credential to result if it's non-null.
d11fe8d is described below
commit d11fe8db52a52aa6cc26a1f33b8429cc7a2b3cc2
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Tue May 2 15:58:51 2023 +0300
Only add derived client secret credential to result if it's non-null.
The inherited deriveClientSecretCredential(..) returns may return null credential,
for instance if we're resolving encryption credentials for an algorithm using asymmetric
keys. The null credentials caused logging on error-level:
ERROR [org.opensaml.security.credential.criteria.impl.EvaluableUsageCredentialCriterion:65] - Credential target was null
---
.../impl/ClientInformationCredentialResolver.java | 4 +++-
.../ClientInformationCredentialResolverTest.java | 22 ++++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolver.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolver.java
index ba86302..cecd9f1 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolver.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolver.java
@@ -149,7 +149,9 @@ public class ClientInformationCredentialResolver extends BasicJOSEObjectCredenti
final ClientSecretCredential secretCred =
new DefaultClientSecretCredential(information.getSecret().getValue());
final Credential derivedCredential = deriveClientSecretCredential(secretCred, criteriaSet);
- credentials.add(derivedCredential);
+ if (derivedCredential != null) {
+ credentials.add(derivedCredential);
+ }
} catch (final ResolverException e) {
log.warn("Unable to derive a client_secret based credential", e);
}
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 3c5a6db..5001c9a 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
@@ -106,6 +106,28 @@ public class ClientInformationCredentialResolverTest extends BaseMetadataCredent
}
+ @Test
+ public void testSuccess_Secret_noSecretCredentialWhenAsymmetricEncryption() throws Exception {
+ ((InitializableComponent) resolver).initialize();
+ criteria = new CriteriaSet();
+
+ criteria.add(new ClientInformationCriterion(
+ OIDCClientInformation.parse(JSONObjectUtils.parse(readJsonFromFile(CLIENT_INFORMATION_SECRET)))));
+
+ criteria.add(new UsageCriterion(UsageType.ENCRYPTION));
+ criteria.add(new KeyManagmentAlgorithmCriterion("RSA1_5"));
+ criteria.add(new DataEncryptionAlgorithmCriterion("A128GCW"));
+
+ final Iterable<Credential> creds = resolver.resolve(criteria);
+
+ assertNotNull(creds);
+ final List<Credential> credsList = new ArrayList<>();
+ creds.forEach(credsList::add);
+ // No keys nor secret
+ assertEquals(credsList.size(), 0);
+
+ }
+
@Test
public void testSuccess_InlineJwks() throws Exception {
((InitializableComponent) resolver).initialize();
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list