[java-oidc-common] branch main updated: Null cleanup in tests.

Scott Cantor cantor.2 at osu.edu
Tue Nov 7 19:51:38 UTC 2023


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

scantor 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=7f2aade3b92070c58a0d84facf226e17da14bd66

The following commit(s) were added to refs/heads/main by this push:
     new 7f2aade  Null cleanup in tests.
7f2aade is described below

commit 7f2aade3b92070c58a0d84facf226e17da14bd66
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Nov 7 14:51:34 2023 -0500

    Null cleanup in tests.
---
 .../shibboleth/oidc/jwk/RemoteJwkSetCacheTest.java |   5 +-
 ...asicSignatureSigningParametersResolverTest.java |  45 +++---
 ...tionSignatureSigningParametersResolverTest.java |  11 +-
 ...DataEncryptionAlgorithmsLookupStrategyTest.java |  18 +--
 .../DefaultEncryptionParametersResolverTest.java   | 169 ++++++++++++---------
 ...portEncryptionAlgorithmsLookupStrategyTest.java |  18 +--
 .../RelyingPartySigningParametersResolverTest.java | 109 +++++++------
 7 files changed, 216 insertions(+), 159 deletions(-)

diff --git a/oidc-common-crypto-api/src/test/java/net/shibboleth/oidc/jwk/RemoteJwkSetCacheTest.java b/oidc-common-crypto-api/src/test/java/net/shibboleth/oidc/jwk/RemoteJwkSetCacheTest.java
index 83623f0..3c305cc 100644
--- a/oidc-common-crypto-api/src/test/java/net/shibboleth/oidc/jwk/RemoteJwkSetCacheTest.java
+++ b/oidc-common-crypto-api/src/test/java/net/shibboleth/oidc/jwk/RemoteJwkSetCacheTest.java
@@ -41,6 +41,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 /**
  * Unit tests for {@link RemoteJwkSetCache}.
  */
+ at SuppressWarnings("javadoc")
 public class RemoteJwkSetCacheTest {
     
     RemoteJwkSetCache jwkSetCache;
@@ -102,7 +103,7 @@ public class RemoteJwkSetCacheTest {
 
         // Now lookup key that is not in the cached set
         final JWKSet jwkSet = jwkSetCache.fetch(new URI(uri), "key-not-in-keyset", Instant.now().plusSeconds(500));
-        Assert.assertNotNull(jwkSet);
+        assert jwkSet != null;
         Assert.assertTrue(jwkSet.getKeyByKeyId("key-not-in-keyset") == null);       
     }
     
@@ -126,7 +127,7 @@ public class RemoteJwkSetCacheTest {
         
         // Now lookup key that is not in the cached set
         final JWKSet jwkSet = jwkSetCache.fetch(new URI(uri), "key-in-rotated-keyset", Instant.now().plusSeconds(500));
-        Assert.assertNotNull(jwkSet);
+        assert jwkSet != null;
         Assert.assertTrue(jwkSet.getKeyByKeyId("key-in-rotated-keyset") != null);       
     }
 
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/BasicSignatureSigningParametersResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/BasicSignatureSigningParametersResolverTest.java
index 9772823..1a9753d 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/BasicSignatureSigningParametersResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/BasicSignatureSigningParametersResolverTest.java
@@ -7,8 +7,8 @@ import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
+import java.security.PrivateKey;
 import java.security.spec.ECParameterSpec;
-import java.util.Collections;
 import java.util.List;
 
 import org.opensaml.core.config.InitializationException;
@@ -32,6 +32,7 @@ import net.shibboleth.oidc.security.credential.DefaultClientSecretCredential;
 import net.shibboleth.oidc.security.impl.support.TestCredentialHelper;
 import net.shibboleth.oidc.security.jose.SignatureSigningParameters;
 import net.shibboleth.oidc.security.jose.criterion.SignatureSigningConfigurationCriterion;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.resolver.CriteriaSet;
 
 /** Tests for the {@link BasicSignatureSigningParametersResolver}.*/
@@ -61,7 +62,7 @@ public class BasicSignatureSigningParametersResolverTest {
         final BasicSignatureSigningConfiguration config = new BasicSignatureSigningConfiguration();
         config.setSignatureAlgorithms(supportedSigningAlgos);
         config.setSigningCredentials(credentials);
-        crit.add(new SignatureSigningConfigurationCriterion(List.of(config)));
+        crit.add(new SignatureSigningConfigurationCriterion(CollectionSupport.singletonList(config)));
 
         return crit;
     }
@@ -75,8 +76,9 @@ public class BasicSignatureSigningParametersResolverTest {
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getSecretKey());
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        assertNotNull(cred.getSecretKey());
     }
     
     @Test
@@ -104,8 +106,11 @@ public class BasicSignatureSigningParametersResolverTest {
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential().getPrivateKey());
-        assertEquals(params.iterator().next().getSigningCredential().getPrivateKey().getAlgorithm(),"RSA");
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        final PrivateKey pkey = cred.getPrivateKey();
+        assert pkey != null;
+        assertEquals(pkey.getAlgorithm(),"RSA");
     }
     
     @Test
@@ -122,9 +127,11 @@ public class BasicSignatureSigningParametersResolverTest {
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getPrivateKey());
-        assertEquals(params.iterator().next().getSigningCredential().getPrivateKey().getAlgorithm(),"RSA");
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        final PrivateKey pkey = cred.getPrivateKey();
+        assert pkey != null;
+        assertEquals(pkey.getAlgorithm(),"RSA");
     }
     
     @Test
@@ -141,9 +148,11 @@ public class BasicSignatureSigningParametersResolverTest {
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getPrivateKey());
-        assertEquals(params.iterator().next().getSigningCredential().getPrivateKey().getAlgorithm(),"EC");
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        final PrivateKey pkey = cred.getPrivateKey();
+        assert pkey != null;
+        assertEquals(pkey.getAlgorithm(),"EC");
     }
     
     /**
@@ -174,13 +183,15 @@ public class BasicSignatureSigningParametersResolverTest {
         final SignatureSigningParameters sigParams = params.iterator().next();
         assertNotNull(sigParams.getSigningCredential());
         final Credential cred = sigParams.getSigningCredential();
-        assertNotNull(cred.getPrivateKey());
+        assert cred != null;
+        final PrivateKey pkey = cred.getPrivateKey();
+        assert pkey != null;
+        assertEquals(pkey.getAlgorithm(),"EC");
         assertTrue(cred.getPrivateKey() instanceof java.security.interfaces.ECKey);
         final java.security.interfaces.ECKey ecPrivateKeyChosen = (java.security.interfaces.ECKey)cred.getPrivateKey();
+        assert ecPrivateKeyChosen != null;
         final ECParameterSpec ecParameterSpec = ecPrivateKeyChosen.getParams();
         
-        assertEquals(cred.getPrivateKey().getAlgorithm(),"EC");
-        
         // Check the curve is compatible with the ES512 alg.
         final JWSAlgorithm algCompatibleWithCredentialCurve = 
                 ECDSA.resolveAlgorithm(Curve.forECParameterSpec(ecParameterSpec));
@@ -198,7 +209,7 @@ public class BasicSignatureSigningParametersResolverTest {
                 .keyUse(KeyUse.SIGNATURE)
                 .generate();
 
-        final CriteriaSet criteria = buildCriteria(Collections.emptyList(),
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.emptyList(),
                 List.of(TestCredentialHelper.createAsymmetricSigningCredential(keyRecipient)));
 
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
@@ -206,4 +217,4 @@ public class BasicSignatureSigningParametersResolverTest {
         assertFalse(params.iterator().hasNext());
     }
 
-}
+}
\ No newline at end of file
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/ClientInformationSignatureSigningParametersResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/ClientInformationSignatureSigningParametersResolverTest.java
index 5145488..dcddfd1 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/ClientInformationSignatureSigningParametersResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/ClientInformationSignatureSigningParametersResolverTest.java
@@ -28,6 +28,7 @@ import java.util.List;
 import javax.annotation.Nonnull;
 
 import org.opensaml.core.config.InitializationException;
+import org.opensaml.security.credential.Credential;
 import org.opensaml.xmlsec.config.GlobalAlgorithmRegistryInitializer;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
@@ -110,8 +111,9 @@ public class ClientInformationSignatureSigningParametersResolverTest {
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getSecretKey());
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        assertNotNull(cred.getSecretKey());
     }
 
     @Test
@@ -160,8 +162,9 @@ public class ClientInformationSignatureSigningParametersResolverTest {
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getSecretKey());
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        assertNotNull(cred.getSecretKey());
     }
 
 }
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultDataEncryptionAlgorithmsLookupStrategyTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultDataEncryptionAlgorithmsLookupStrategyTest.java
index b3e7993..f493745 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultDataEncryptionAlgorithmsLookupStrategyTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultDataEncryptionAlgorithmsLookupStrategyTest.java
@@ -15,7 +15,6 @@
 package net.shibboleth.oidc.security.jose.impl;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
 
 import java.util.List;
 
@@ -31,6 +30,7 @@ import net.shibboleth.oidc.jwa.algorithm.descriptors.EncryptionA192CBCHS384;
 import net.shibboleth.oidc.jwa.algorithm.descriptors.EncryptionA256CBCHS512;
 import net.shibboleth.oidc.jwa.support.EncryptionConstants;
 import net.shibboleth.oidc.security.jose.criterion.EncryptionConfigurationCriterion;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.resolver.CriteriaSet;
 
 @SuppressWarnings("javadoc")
@@ -55,10 +55,10 @@ public class DefaultDataEncryptionAlgorithmsLookupStrategyTest {
         
         config = new BasicEncryptionConfiguration();
         config.setDataEncryptionAlgorithms(
-                List.of(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256,EncryptionConstants.ALGO_ID_ENC_ALG_A128GCM,
+                CollectionSupport.listOf(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256,EncryptionConstants.ALGO_ID_ENC_ALG_A128GCM,
                         EncryptionConstants.ALGO_ID_ENC_ALG_A256CBC_HS512, EncryptionConstants.ALGO_ID_ENC_ALG_A192CBC_HS384));
 
-        criteria = new CriteriaSet(new EncryptionConfigurationCriterion(List.of(config)));   
+        criteria = new CriteriaSet(new EncryptionConfigurationCriterion(CollectionSupport.singletonList(config)));   
         
         strategy = new DefaultDataEncryptionAlgorithmsLookupStrategy(algorithmRegistry);
     }
@@ -66,7 +66,7 @@ public class DefaultDataEncryptionAlgorithmsLookupStrategyTest {
     @Test
     public void testSuccess_AllAlgs() {                
         final List<String> keyAlgs = strategy.apply(criteria, Predicates.alwaysTrue());        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 4);
     }    
     
@@ -79,7 +79,7 @@ public class DefaultDataEncryptionAlgorithmsLookupStrategyTest {
         strategy = new DefaultDataEncryptionAlgorithmsLookupStrategy(algorithmRegistry);
         
         final List<String> keyAlgs = strategy.apply(criteria, Predicates.alwaysTrue());        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 2);
     }
     
@@ -87,7 +87,7 @@ public class DefaultDataEncryptionAlgorithmsLookupStrategyTest {
     public void testSuccess_SomeAlgsExcluded() {                
         final List<String> keyAlgs = strategy.apply(
                 criteria, alg -> !EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256.equals(alg));        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 3);
     }
     
@@ -96,7 +96,7 @@ public class DefaultDataEncryptionAlgorithmsLookupStrategyTest {
         // Set only one included alg
         final List<String> keyAlgs = strategy.apply(
                 criteria, alg -> EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256.equals(alg));        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 1);
     }
     
@@ -105,8 +105,8 @@ public class DefaultDataEncryptionAlgorithmsLookupStrategyTest {
         // Set the only included alg as the A256GCM algorithm
         final List<String> keyAlgs = strategy.apply(
                 criteria, alg -> EncryptionConstants.ALGO_ID_ENC_ALG_A256GCM.equals(alg));        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 0);
     }
 
-}
+}
\ No newline at end of file
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultEncryptionParametersResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultEncryptionParametersResolverTest.java
index 9a0cd51..0369a34 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultEncryptionParametersResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultEncryptionParametersResolverTest.java
@@ -21,10 +21,14 @@ import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
+import java.security.PublicKey;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import javax.crypto.SecretKey;
+
 import org.opensaml.core.config.InitializationException;
 import org.opensaml.security.credential.Credential;
 import org.opensaml.security.credential.UsageType;
@@ -54,6 +58,7 @@ import net.shibboleth.oidc.security.impl.support.TestCredentialHelper;
 import net.shibboleth.oidc.security.jose.EncryptionParameters;
 import net.shibboleth.oidc.security.jose.criterion.ClientSecretCredentialCriterion;
 import net.shibboleth.oidc.security.jose.criterion.EncryptionConfigurationCriterion;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.ResolverException;
 
@@ -88,17 +93,19 @@ public class DefaultEncryptionParametersResolverTest {
 
 
         @Override
-        protected Iterable<Credential> resolveFromSource(final CriteriaSet criteriaSet) throws ResolverException {
-            if (criteriaSet.contains(ClientSecretCredentialCriterion.class)) {
-                final ClientSecretCredentialCriterion credentialCriterion = 
-                        criteriaSet.get(ClientSecretCredentialCriterion.class);
-                final ClientSecretCredential credential = credentialCriterion.getCredential();
+        @Nonnull protected Iterable<Credential> resolveFromSource(@Nullable final CriteriaSet criteriaSet)
+                throws ResolverException {
+            
+            final ClientSecretCredentialCriterion secretCrit =
+                    criteriaSet != null ? criteriaSet.get(ClientSecretCredentialCriterion.class) : null;
+            if (secretCrit != null) {
+                final ClientSecretCredential credential = secretCrit.getCredential();
                 
                 // Wrong key type for encryption
-                return List.of(credential.toSigningCredential());               
+                return CollectionSupport.singletonList(credential.toSigningCredential());               
                 
             } else {
-                return Collections.emptyList();
+                return CollectionSupport.emptyList();
             }
         }
     
@@ -115,7 +122,8 @@ public class DefaultEncryptionParametersResolverTest {
         }
 
         @Override
-        protected Iterable<Credential> resolveFromSource(final CriteriaSet criteriaSet) throws ResolverException {
+        @Nonnull protected Iterable<Credential> resolveFromSource(@Nullable final CriteriaSet criteriaSet)
+                throws ResolverException {
            return creds;
         }
     
@@ -131,16 +139,16 @@ public class DefaultEncryptionParametersResolverTest {
         
         config = new BasicEncryptionConfiguration();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_AES_128_KW, KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256,
+                CollectionSupport.listOf(KeyManagementConstants.ALGO_ID_ALG_AES_128_KW, KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256,
                 KeyManagementConstants.ALGO_ID_ALG_ECDH_ES_AES_192_KW, KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP));
         if (addDataEncryptionAlgs) {
             config.setDataEncryptionAlgorithms(
-                    List.of(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256,EncryptionConstants.ALGO_ID_ENC_ALG_A128GCM,
+                    CollectionSupport.listOf(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256,EncryptionConstants.ALGO_ID_ENC_ALG_A128GCM,
                             EncryptionConstants.ALGO_ID_ENC_ALG_A256CBC_HS512));
         } else {
-            config.setDataEncryptionAlgorithms(Collections.emptyList());
+            config.setDataEncryptionAlgorithms(CollectionSupport.emptyList());
         }
-        final CriteriaSet criteria = new CriteriaSet(new EncryptionConfigurationCriterion(List.of(config)));   
+        final CriteriaSet criteria = new CriteriaSet(new EncryptionConfigurationCriterion(CollectionSupport.listOf(config)));   
         criteria.add(new UsageCriterion(UsageType.ENCRYPTION));
         return criteria;
     }
@@ -149,7 +157,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicRSA() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));        
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));        
         
         final List<Credential> creds = new ArrayList<>();
         final RSAKey key = new RSAKeyGenerator(2048)
@@ -166,14 +174,16 @@ public class DefaultEncryptionParametersResolverTest {
         
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getPublicKey());
-        assertEquals(param.getKeyTransportEncryptionCredential().getPublicKey().getAlgorithm(),"RSA");
+        final Credential cred = param.getKeyTransportEncryptionCredential();
+        assert cred != null;
+        final PublicKey pkey = cred.getPublicKey();
+        assert pkey != null;
+        assertEquals(pkey.getAlgorithm(),"RSA");
        
     }
 
@@ -181,7 +191,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicRSA_noDataEncryptionAlgs() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet(false);
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));        
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));        
         
         final List<Credential> creds = new ArrayList<>();
         final RSAKey key = new RSAKeyGenerator(2048)
@@ -203,7 +213,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicRSA_WrongAlgorithmInConfig() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP));        
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP));        
         
         final List<Credential> creds = new ArrayList<>();
         final RSAKey key = new RSAKeyGenerator(2048)
@@ -229,7 +239,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicRSA_NoAlgorithmSpecifiedInJWKCredential() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));        
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));        
         
         final List<Credential> creds = new ArrayList<>();
         final RSAKey key = new RSAKeyGenerator(2048)
@@ -244,21 +254,23 @@ public class DefaultEncryptionParametersResolverTest {
         
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getPublicKey());
-        assertEquals(param.getKeyTransportEncryptionCredential().getPublicKey().getAlgorithm(),"RSA");
+        final Credential transportcred = param.getKeyTransportEncryptionCredential();
+        assert transportcred != null;
+        final PublicKey pkey = transportcred.getPublicKey();
+        assert pkey != null;
+        assertEquals(pkey.getAlgorithm(),"RSA");
        
     }
     
     @Test
     public void testBasicRSA_WrongAlgorithmInFirstKey_ChooseSecondKey() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
-        config.setKeyTransportEncryptionAlgorithms(List.of(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));
+        config.setKeyTransportEncryptionAlgorithms(CollectionSupport.listOf(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));
         final RSAKey key = new RSAKeyGenerator(2048)
                 .algorithm(JWEAlgorithm.RSA_OAEP)
                 .keyUse(KeyUse.ENCRYPTION)
@@ -275,21 +287,22 @@ public class DefaultEncryptionParametersResolverTest {
         config.setKEKCredentialResolver(new MockStaticFilteringCredentialResolver(creds));
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getPublicKey());
-        assertTrue(param.getKeyTransportEncryptionCredential().getKeyNames().contains("mock-key-correct-type"));
+        final Credential cred = param.getKeyTransportEncryptionCredential();
+        assert cred != null;
+        assertNotNull(cred.getPublicKey());
+        assertTrue(cred.getKeyNames().contains("mock-key-correct-type"));
     }
     
     @Test
     public void testBasicEC() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_ECDH_ES));        
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_ECDH_ES));        
         
         final List<Credential> creds = new ArrayList<>();
         final ECKey key = new ECKeyGenerator(Curve.P_256)                
@@ -305,14 +318,16 @@ public class DefaultEncryptionParametersResolverTest {
 
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_ECDH_ES);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getPublicKey());
-        assertEquals(param.getKeyTransportEncryptionCredential().getPublicKey().getAlgorithm(),"EC");
+        final Credential cred = param.getKeyTransportEncryptionCredential();
+        assert cred != null;
+        final PublicKey pkey = cred.getPublicKey();
+        assert pkey != null;
+        assertEquals(pkey.getAlgorithm(),"EC");
        
     }
  
@@ -321,7 +336,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicAESKeyWrap() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_AES_256_KW));        
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_AES_256_KW));        
         
         final List<Credential> creds = new ArrayList<>();
         creds.add(TestCredentialHelper.createClientSecretCredential(SYMMETRIC_KEY)
@@ -332,14 +347,16 @@ public class DefaultEncryptionParametersResolverTest {
         
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_AES_256_KW);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getSecretKey());
-        assertEquals(param.getKeyTransportEncryptionCredential().getSecretKey().getAlgorithm(),"AES");
+        final Credential cred = param.getKeyTransportEncryptionCredential();
+        assert cred != null;
+        final SecretKey skey = cred.getSecretKey();
+        assert skey != null;
+        assertEquals(skey.getAlgorithm(),"AES");
        
     }
     
@@ -354,8 +371,8 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicAESKeyWrap_KeyWrapKeySizeDifferentThanEncryptionMethod() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_AES_192_KW));  
-        config.setDataEncryptionAlgorithms(List.of(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256));
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_AES_192_KW));  
+        config.setDataEncryptionAlgorithms(CollectionSupport.singletonList(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256));
         
         final List<Credential> creds = new ArrayList<>();
         creds.add(TestCredentialHelper.createClientSecretCredential(SYMMETRIC_KEY)
@@ -365,14 +382,16 @@ public class DefaultEncryptionParametersResolverTest {
         
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_AES_192_KW);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getSecretKey());
-        assertEquals(param.getKeyTransportEncryptionCredential().getSecretKey().getAlgorithm(),"AES");
+        final Credential cred = param.getKeyTransportEncryptionCredential();
+        assert cred != null;
+        final SecretKey skey = cred.getSecretKey();
+        assert skey != null;
+        assertEquals(skey.getAlgorithm(),"AES");
        
     }
     
@@ -381,8 +400,8 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicAESKeyWrap_WrongKeyLength() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_AES_128_KW));        
-        config.setDataEncryptionAlgorithms(List.of(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256));
+                CollectionSupport.listOf(KeyManagementConstants.ALGO_ID_ALG_AES_128_KW));        
+        config.setDataEncryptionAlgorithms(CollectionSupport.listOf(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256));
         
         final List<Credential> creds = new ArrayList<>();
         creds.add(TestCredentialHelper.createClientSecretCredential(SYMMETRIC_KEY)
@@ -400,7 +419,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicAESKeyWrapWhenRSAKeyAlsoExists() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_AES_256_KW));        
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_AES_256_KW));        
         
         final List<Credential> creds = new ArrayList<>();
         final RSAKey key = new RSAKeyGenerator(2048)
@@ -417,14 +436,16 @@ public class DefaultEncryptionParametersResolverTest {
         
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_AES_256_KW);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getSecretKey());
-        assertEquals(param.getKeyTransportEncryptionCredential().getSecretKey().getAlgorithm(),"AES");
+        final Credential cred = param.getKeyTransportEncryptionCredential();
+        assert cred != null;
+        final SecretKey skey = cred.getSecretKey();
+        assert skey != null;
+        assertEquals(skey.getAlgorithm(),"AES");
        
     }
     
@@ -433,7 +454,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicAESKeyWrapWhenRSAKeyAlsoExists_CheckOrderingIsPreserved() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_AES_256_KW, 
+                CollectionSupport.listOf(KeyManagementConstants.ALGO_ID_ALG_AES_256_KW, 
                 KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256));        
         
         final List<Credential> creds = new ArrayList<>();
@@ -451,14 +472,16 @@ public class DefaultEncryptionParametersResolverTest {
         
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_AES_256_KW);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getSecretKey());
-        assertEquals(param.getKeyTransportEncryptionCredential().getSecretKey().getAlgorithm(),"AES");
+        final Credential cred = param.getKeyTransportEncryptionCredential();
+        assert cred != null;
+        final SecretKey skey = cred.getSecretKey();
+        assert skey != null;
+        assertEquals(skey.getAlgorithm(),"AES");
        
     }
     
@@ -467,7 +490,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicAESKeyWrapWhenRSAKeyAlsoExists_CheckOrderingIsPreserved_RSAFirst() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256, 
+                CollectionSupport.listOf(KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256, 
                         KeyManagementConstants.ALGO_ID_ALG_AES_256_KW));        
         
         final List<Credential> creds = new ArrayList<>();
@@ -485,14 +508,16 @@ public class DefaultEncryptionParametersResolverTest {
         
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256);
-        assertNotNull(param.getKeyTransportEncryptionCredential());
-        assertNotNull(param.getKeyTransportEncryptionCredential().getPublicKey());
-        assertEquals(param.getKeyTransportEncryptionCredential().getPublicKey().getAlgorithm(),"RSA");
+        final Credential cred = param.getKeyTransportEncryptionCredential();
+        assert cred != null;
+        final PublicKey pkey = cred.getPublicKey();
+        assert pkey != null;
+        assertEquals(pkey.getAlgorithm(),"RSA");
        
     }
     
@@ -500,7 +525,7 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicAESKeyWrap_WrongKeyAndUsageType() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_AES_256_KW));          
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_AES_256_KW));          
         
         criteria.add(
                 new ClientSecretCredentialCriterion(new DefaultClientSecretCredential(SYMMETRIC_KEY)));
@@ -516,8 +541,8 @@ public class DefaultEncryptionParametersResolverTest {
     public void testBasicDirectEncryption() throws Exception {
         final CriteriaSet criteria =  buildBasicCriteriaSet();
         config.setKeyTransportEncryptionAlgorithms(
-                List.of(KeyManagementConstants.ALGO_ID_ALG_DIR));     
-        config.setDataEncryptionAlgorithms(List.of(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256,
+                CollectionSupport.singletonList(KeyManagementConstants.ALGO_ID_ALG_DIR));     
+        config.setDataEncryptionAlgorithms(CollectionSupport.listOf(EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256,
                 EncryptionConstants.ALGO_ID_ENC_ALG_A256CBC_HS512));
         
         final List<Credential> creds = new ArrayList<>();
@@ -529,15 +554,17 @@ public class DefaultEncryptionParametersResolverTest {
         
         final EncryptionParameters param = resolver.resolveSingle(criteria);
         
-        assertNotNull(param);
+        assert param != null;
         assertNotNull(param.getDataEncryptionAlgorithm());
         assertNotNull(param.getKeyTransportEncryptionAlgorithm());  
         assertEquals(param.getDataEncryptionAlgorithm(),EncryptionConstants.ALGO_ID_ENC_ALG_A128CBC_HS256);
         assertEquals(param.getKeyTransportEncryptionAlgorithm(),KeyManagementConstants.ALGO_ID_ALG_DIR);
-        assertNotNull(param.getDataEncryptionCredential());
-        assertNotNull(param.getDataEncryptionCredential().getSecretKey());
-        assertEquals(param.getDataEncryptionCredential().getSecretKey().getAlgorithm(),"AES");
+        final Credential cred = param.getDataEncryptionCredential();
+        assert cred != null;
+        final SecretKey skey = cred.getSecretKey();
+        assert skey != null;
+        assertEquals(skey.getAlgorithm(),"AES");
        
     }
  
-}
+}
\ No newline at end of file
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest.java
index 6172eba..ddfbc8e 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest.java
@@ -15,7 +15,6 @@
 package net.shibboleth.oidc.security.jose.impl;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
 
 import java.util.List;
 
@@ -31,6 +30,7 @@ import net.shibboleth.oidc.jwa.algorithm.descriptors.KeyTransportRSAOAEP256;
 import net.shibboleth.oidc.jwa.algorithm.descriptors.SymmetricKeyWrapA128KW;
 import net.shibboleth.oidc.jwa.support.KeyManagementConstants;
 import net.shibboleth.oidc.security.jose.criterion.EncryptionConfigurationCriterion;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.resolver.CriteriaSet;
 
 @SuppressWarnings("javadoc")
@@ -58,7 +58,7 @@ public class DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest {
                 List.of(KeyManagementConstants.ALGO_ID_ALG_AES_128_KW, KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP_256,
                 KeyManagementConstants.ALGO_ID_ALG_ECDH_ES, KeyManagementConstants.ALGO_ID_ALG_RSA_OAEP));
 
-        criteria = new CriteriaSet(new EncryptionConfigurationCriterion(List.of(config)));   
+        criteria = new CriteriaSet(new EncryptionConfigurationCriterion(CollectionSupport.singletonList(config)));   
         
         strategy = new DefaultKeyTransportEncryptionAlgorithmsLookupStrategy(algorithmRegistry);
     }
@@ -66,14 +66,14 @@ public class DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest {
     @Test
     public void testSuccess_AllAlgs() {                
         final List<String> keyAlgs = strategy.apply(criteria, Predicates.alwaysTrue());        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 4);
     }
     
     @Test
     public void testSuccess() {                
         final List<String> keyAlgs = strategy.apply(criteria, Predicates.alwaysTrue());        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 4);
     }
     
@@ -86,7 +86,7 @@ public class DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest {
         strategy = new DefaultKeyTransportEncryptionAlgorithmsLookupStrategy(algorithmRegistry);
         
         final List<String> keyAlgs = strategy.apply(criteria, Predicates.alwaysTrue());        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 2);
     }
     
@@ -94,7 +94,7 @@ public class DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest {
     public void testSuccess_SomeAlgsExcluded() {                
         final List<String> keyAlgs = strategy.apply(
                 criteria, alg -> !KeyManagementConstants.ALGO_ID_ALG_AES_128_KW.equals(alg));        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 3);
     }
     
@@ -103,7 +103,7 @@ public class DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest {
         // Set only one included alg
         final List<String> keyAlgs = strategy.apply(
                 criteria, alg -> KeyManagementConstants.ALGO_ID_ALG_AES_128_KW.equals(alg));        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 1);
     }
     
@@ -112,8 +112,8 @@ public class DefaultKeyTransportEncryptionAlgorithmsLookupStrategyTest {
         // Set the only included alg as the Dir algorithm
         final List<String> keyAlgs = strategy.apply(
                 criteria, alg -> KeyManagementConstants.ALGO_ID_ALG_DIR.equals(alg));        
-        assertNotNull(keyAlgs);
+        assert keyAlgs != null;
         assertEquals(keyAlgs.size(), 0);
     }
 
-}
+}
\ No newline at end of file
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/RelyingPartySigningParametersResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/RelyingPartySigningParametersResolverTest.java
index 8cb213b..2c8474f 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/RelyingPartySigningParametersResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/jose/impl/RelyingPartySigningParametersResolverTest.java
@@ -29,6 +29,7 @@ import java.util.stream.Collectors;
 
 import org.opensaml.core.config.InitializationException;
 import org.opensaml.profile.context.ProfileRequestContext;
+import org.opensaml.security.credential.Credential;
 import org.opensaml.security.credential.UsageType;
 import org.opensaml.xmlsec.config.GlobalAlgorithmRegistryInitializer;
 import org.testng.annotations.BeforeMethod;
@@ -58,6 +59,7 @@ import net.shibboleth.oidc.security.jose.criterion.SignatureSigningConfiguration
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
 import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.ResolverException;
 
@@ -103,19 +105,20 @@ public class RelyingPartySigningParametersResolverTest {
     
     @Test
     public void testResolveSuccess_StaticCredentials() throws ResolverException {
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.singletonList(SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
         criteria.add(new ClientSecretCredentialCriterion(
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getSecretKey());
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        assertNotNull(cred.getSecretKey());
     }
     
     @Test
     public void testResolveFail_StaticCredentials_UnsupportedMethod() throws ResolverException {
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_RS_256));
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.singletonList(SignatureConstants.ALGO_ID_SIGNATURE_RS_256));
         criteria.add(new ClientSecretCredentialCriterion(
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
@@ -125,48 +128,50 @@ public class RelyingPartySigningParametersResolverTest {
     
     @Test
     public void testResolveSuccess_StaticCredentials_ConfigSupportsOne() throws ResolverException {
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.listOf(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
                 SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
         criteria.add(new ClientSecretCredentialCriterion(
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));;
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getSecretKey());
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        assertNotNull(cred.getSecretKey());
     }
     
     @Test
     public void testResolveSuccess_StaticCredentials_OPSupportsOne() throws ResolverException, URISyntaxException {
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.listOf(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
                 SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
         criteria.add(new ClientSecretCredentialCriterion(
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));
         
         // Now let the OP support one of those which matches the credential
         final OIDCProviderMetadata metadata = 
-                new OIDCProviderMetadata(new Issuer("test"), List.of(SubjectType.PUBLIC), new URI("nowhere"));
-        metadata.setRequestObjectJWSAlgs(List.of(JWSAlgorithm.HS256));
+                new OIDCProviderMetadata(new Issuer("test"), CollectionSupport.singletonList(SubjectType.PUBLIC), new URI("nowhere"));
+        metadata.setRequestObjectJWSAlgs(CollectionSupport.singletonList(JWSAlgorithm.HS256));
         criteria.add(new ProviderMetadataCriterion(metadata));
         
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getSecretKey());
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        assertNotNull(cred.getSecretKey());
     }
     
     @Test
     public void testResolveSuccess_StaticCredentials_OPSupportsNone() throws ResolverException, URISyntaxException {
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.listOf(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
                 SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
         criteria.add(new ClientSecretCredentialCriterion(
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));
         
         // Now let the OP support none of those supported by the config
         final OIDCProviderMetadata metadata = 
-                new OIDCProviderMetadata(new Issuer("test"), List.of(SubjectType.PUBLIC), new URI("nowhere"));
-        metadata.setRequestObjectJWSAlgs(List.of(JWSAlgorithm.EdDSA));
+                new OIDCProviderMetadata(new Issuer("test"), CollectionSupport.singletonList(SubjectType.PUBLIC), new URI("nowhere"));
+        metadata.setRequestObjectJWSAlgs(CollectionSupport.singletonList(JWSAlgorithm.EdDSA));
         criteria.add(new ProviderMetadataCriterion(metadata));
         
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
@@ -176,7 +181,7 @@ public class RelyingPartySigningParametersResolverTest {
     
     @Test
     public void testResolveSuccess_RSACredentials_OPSupportsOne() throws Exception {
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.listOf(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
                 SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
         
         // Create the normal client_secret
@@ -184,33 +189,36 @@ public class RelyingPartySigningParametersResolverTest {
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));
         
         // Add an RSA type to the security config
+        final SignatureSigningConfigurationCriterion signingCrit = criteria.get(SignatureSigningConfigurationCriterion.class);
+        assert signingCrit != null;
+        
         final BasicSignatureSigningConfiguration config = 
-                (BasicSignatureSigningConfiguration) 
-                criteria.get(SignatureSigningConfigurationCriterion.class).getConfigurations().get(0);
+                (BasicSignatureSigningConfiguration) signingCrit.getConfigurations().get(0);
         
-        config.setSigningCredentials(List.of(createRSASigningCredential(new RSAKeyGenerator(2048)
+        config.setSigningCredentials(CollectionSupport.singletonList(createRSASigningCredential(new RSAKeyGenerator(2048)
                 .keyID("1")
                 .keyUse(KeyUse.SIGNATURE)
                 .generate())));
         
         // Now let the OP support one of those which matches one of the credentials
         final OIDCProviderMetadata metadata = 
-                new OIDCProviderMetadata(new Issuer("test"), List.of(SubjectType.PUBLIC), new URI("nowhere"));
-        metadata.setRequestObjectJWSAlgs(List.of(JWSAlgorithm.RS256));
+                new OIDCProviderMetadata(new Issuer("test"), CollectionSupport.singletonList(SubjectType.PUBLIC), new URI("nowhere"));
+        metadata.setRequestObjectJWSAlgs(CollectionSupport.singletonList(JWSAlgorithm.RS256));
         criteria.add(new ProviderMetadataCriterion(metadata));
         
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getPrivateKey());
-        assertTrue(params.iterator().next().getSigningCredential().getPrivateKey() instanceof RSAPrivateKey);
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        assertNotNull(cred.getPrivateKey());
+        assertTrue(cred.getPrivateKey() instanceof RSAPrivateKey);
     }
    
     /* Also should preserve alg order from the config.*/
     @Test
     public void testResolveSuccess_ECCredentials_OPSupportsTwo() throws Exception {
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.listOf(SignatureConstants.ALGO_ID_SIGNATURE_RS_256, 
                 SignatureConstants.ALGO_ID_SIGNATURE_HS_256, SignatureConstants.ALGO_ID_SIGNATURE_ES_256));
         
         // Create the normal client_secret
@@ -218,46 +226,51 @@ public class RelyingPartySigningParametersResolverTest {
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));
         
         // Add an RSA type to the security config
+        final SignatureSigningConfigurationCriterion signingCrit = criteria.get(SignatureSigningConfigurationCriterion.class);
+        assert signingCrit != null;
+        
         final BasicSignatureSigningConfiguration config = 
-                (BasicSignatureSigningConfiguration) 
-                criteria.get(SignatureSigningConfigurationCriterion.class).getConfigurations().get(0);
+                (BasicSignatureSigningConfiguration) signingCrit.getConfigurations().get(0);
         
-        config.setSigningCredentials(List.of(createRSASigningCredential(
+        config.setSigningCredentials(CollectionSupport.singletonList(createRSASigningCredential(
                 new ECKeyGenerator(Curve.P_256).keyID("123").generate())));
         
         // Now let the OP support one of those which matches one of the credentials
         final OIDCProviderMetadata metadata = 
-                new OIDCProviderMetadata(new Issuer("test"), List.of(SubjectType.PUBLIC), new URI("nowhere"));
-        metadata.setRequestObjectJWSAlgs(List.of(JWSAlgorithm.ES256, JWSAlgorithm.RS256));
+                new OIDCProviderMetadata(new Issuer("test"), CollectionSupport.singletonList(SubjectType.PUBLIC), new URI("nowhere"));
+        metadata.setRequestObjectJWSAlgs(CollectionSupport.listOf(JWSAlgorithm.ES256, JWSAlgorithm.RS256));
         criteria.add(new ProviderMetadataCriterion(metadata));
         
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
         assertNotNull(params);
         assertTrue(params.iterator().hasNext());
-        assertNotNull(params.iterator().next().getSigningCredential());
-        assertNotNull(params.iterator().next().getSigningCredential().getPrivateKey());
-        assertTrue(params.iterator().next().getSigningCredential().getPrivateKey() instanceof ECPrivateKey);
+        final Credential cred = params.iterator().next().getSigningCredential();
+        assert cred != null;
+        assertNotNull(cred.getPrivateKey());
+        assertTrue(cred.getPrivateKey() instanceof ECPrivateKey);
     }
     
     @Test
     public void testResolveFail_AlgorithmExcluded() throws Exception {
         
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.singletonList(SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
         
         // Create the normal client_secret
         criteria.add(new ClientSecretCredentialCriterion(
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));
         
+        final SignatureSigningConfigurationCriterion signingCrit = criteria.get(SignatureSigningConfigurationCriterion.class);
+        assert signingCrit != null;
+        
         final BasicSignatureSigningConfiguration config = 
-                (BasicSignatureSigningConfiguration) 
-                criteria.get(SignatureSigningConfigurationCriterion.class).getConfigurations().get(0);
+                (BasicSignatureSigningConfiguration) signingCrit.getConfigurations().get(0);
         
         // Explicitly exclude the algorithm
-        config.setExcludedAlgorithms(List.of(SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
+        config.setExcludedAlgorithms(CollectionSupport.singletonList(SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
         
         final OIDCProviderMetadata metadata = 
-                new OIDCProviderMetadata(new Issuer("test"), List.of(SubjectType.PUBLIC), new URI("nowhere"));
-        metadata.setRequestObjectJWSAlgs(List.of(JWSAlgorithm.HS256));
+                new OIDCProviderMetadata(new Issuer("test"), CollectionSupport.singletonList(SubjectType.PUBLIC), new URI("nowhere"));
+        metadata.setRequestObjectJWSAlgs(CollectionSupport.singletonList(JWSAlgorithm.HS256));
         criteria.add(new ProviderMetadataCriterion(metadata));
         
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
@@ -268,22 +281,24 @@ public class RelyingPartySigningParametersResolverTest {
     @Test
     public void testResolveFail_AlgorithmNotInIncludeList() throws Exception {
         
-        final CriteriaSet criteria = buildCriteria(List.of(SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
+        final CriteriaSet criteria = buildCriteria(CollectionSupport.singletonList(SignatureConstants.ALGO_ID_SIGNATURE_HS_256));
         
         // Create the normal client_secret
         criteria.add(new ClientSecretCredentialCriterion(
                 new DefaultClientSecretCredential(CLIENT_SECRET_256)));
         
+        final SignatureSigningConfigurationCriterion signingCrit = criteria.get(SignatureSigningConfigurationCriterion.class);
+        assert signingCrit != null;
+        
         final BasicSignatureSigningConfiguration config = 
-                (BasicSignatureSigningConfiguration) 
-                criteria.get(SignatureSigningConfigurationCriterion.class).getConfigurations().get(0);
+                (BasicSignatureSigningConfiguration) signingCrit.getConfigurations().get(0);
         
         // Do not include the algorithm
-        config.setIncludedAlgorithms(List.of(SignatureConstants.ALGO_ID_SIGNATURE_HS_512));
+        config.setIncludedAlgorithms(CollectionSupport.singletonList(SignatureConstants.ALGO_ID_SIGNATURE_HS_512));
         
         final OIDCProviderMetadata metadata = 
-                new OIDCProviderMetadata(new Issuer("test"), List.of(SubjectType.PUBLIC), new URI("nowhere"));
-        metadata.setRequestObjectJWSAlgs(List.of(JWSAlgorithm.HS256));
+                new OIDCProviderMetadata(new Issuer("test"), CollectionSupport.singletonList(SubjectType.PUBLIC), new URI("nowhere"));
+        metadata.setRequestObjectJWSAlgs(CollectionSupport.singletonList(JWSAlgorithm.HS256));
         criteria.add(new ProviderMetadataCriterion(metadata));
         
         final Iterable<SignatureSigningParameters> params = resolver.resolve(criteria);
@@ -296,7 +311,7 @@ public class RelyingPartySigningParametersResolverTest {
         final CriteriaSet crit = new CriteriaSet();
         final BasicSignatureSigningConfiguration config = new BasicSignatureSigningConfiguration();
         config.setSignatureAlgorithms(supportedSigningAlgos);
-        crit.add(new SignatureSigningConfigurationCriterion(List.of(config)));
+        crit.add(new SignatureSigningConfigurationCriterion(CollectionSupport.singletonList(config)));
         return crit;
     }
     
@@ -323,4 +338,4 @@ public class RelyingPartySigningParametersResolverTest {
         return jwkCredential;
     }
 
-}
+}
\ No newline at end of file

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


More information about the commits mailing list