[java-oidc-common] branch main updated: Switch provider algorithm lookup strategies to return alg Strings
Phil Smart
philip.smart at jisc.ac.uk
Fri Jan 6 10:01:51 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=3ca96a81f2012e6ad414b9a8db71112e0cc63fef
The following commit(s) were added to refs/heads/main by this push:
new 3ca96a8 Switch provider algorithm lookup strategies to return alg Strings
3ca96a8 is described below
commit 3ca96a81f2012e6ad414b9a8db71112e0cc63fef
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Fri Jan 6 10:01:45 2023 +0000
Switch provider algorithm lookup strategies to return alg Strings
---
...viderMetadataDataEncryptionAlgorithmsLookupStrategy.java | 13 +++++--------
...adataKeyTransportEncryptionAlgorithmsLookupStrategy.java | 13 +++++--------
...rMetadataDataEncryptionAlgorithmsLookupStrategyTest.java | 10 +++++++---
...aKeyTransportEncryptionAlgorithmsLookupStrategyTest.java | 13 ++++++++-----
4 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/ProviderMetadataDataEncryptionAlgorithmsLookupStrategy.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/ProviderMetadataDataEncryptionAlgorithmsLookupStrategy.java
index 782f484..b921d34 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/ProviderMetadataDataEncryptionAlgorithmsLookupStrategy.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/ProviderMetadataDataEncryptionAlgorithmsLookupStrategy.java
@@ -21,7 +21,6 @@ import java.util.Collections;
import java.util.List;
import java.util.function.Function;
import java.util.function.Predicate;
-import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -30,7 +29,6 @@ import org.opensaml.xmlsec.algorithm.AlgorithmRegistry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.nimbusds.jose.EncryptionMethod;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.shibboleth.oidc.security.criterion.ProviderMetadataCriterion;
@@ -61,7 +59,7 @@ public class ProviderMetadataDataEncryptionAlgorithmsLookupStrategy
* Can return {@code null} if the metadata does not describe its support algorithms (which is optional).
*/
@Nonnull
- private final Function<OIDCProviderMetadata, List<EncryptionMethod>> providerEncryptionMethodsLookupStrategy;
+ private final Function<OIDCProviderMetadata, List<String>> providerEncryptionMethodsLookupStrategy;
/**
* Constructor.
@@ -72,7 +70,7 @@ public class ProviderMetadataDataEncryptionAlgorithmsLookupStrategy
*/
public ProviderMetadataDataEncryptionAlgorithmsLookupStrategy(
@Nonnull @ParameterName(name="providerEncryptionMethodsLookupStrategy")
- final Function<OIDCProviderMetadata, List<EncryptionMethod>> strategy,
+ final Function<OIDCProviderMetadata, List<String>> strategy,
@Nullable @ParameterName(name = "AlgorithmRegistry") final AlgorithmRegistry registry){
super(registry);
providerEncryptionMethodsLookupStrategy = Constraint.isNotNull(strategy, "The provider key transport "
@@ -87,7 +85,7 @@ public class ProviderMetadataDataEncryptionAlgorithmsLookupStrategy
*/
public ProviderMetadataDataEncryptionAlgorithmsLookupStrategy(
@Nonnull @ParameterName(name="providerKeyTransportAlgorithmsLookupStrategy")
- final Function<OIDCProviderMetadata, List<EncryptionMethod>> strategy){
+ final Function<OIDCProviderMetadata, List<String>> strategy){
super(null);
providerEncryptionMethodsLookupStrategy = Constraint.isNotNull(strategy, "The provider key transport "
+ "lookup strategy can not be null");
@@ -105,7 +103,7 @@ public class ProviderMetadataDataEncryptionAlgorithmsLookupStrategy
return super.apply(criteria, includeExcludePredicate);
}
- final List<EncryptionMethod> dataEncryptionMethods =
+ final List<String> dataEncryptionMethods =
providerEncryptionMethodsLookupStrategy.apply(metadata);
log.trace("Resolved effective data encryption algorithms from provider metadata: {}", dataEncryptionMethods);
if (dataEncryptionMethods == null) {
@@ -119,8 +117,7 @@ public class ProviderMetadataDataEncryptionAlgorithmsLookupStrategy
log.trace("Resolved supported data encryption algorithms from config: {}", dataEncryptionAlgorithmsSupported);
final List<String> supportedAndConfiguredDataEncryptionAlgorithms =
- findAlgorithmIntersection(dataEncryptionMethods.stream().map(EncryptionMethod::getName)
- .collect(Collectors.toList()),dataEncryptionAlgorithmsSupported);
+ findAlgorithmIntersection(dataEncryptionMethods,dataEncryptionAlgorithmsSupported);
log.debug("Supported and configured data encryption algorithms: {}",
supportedAndConfiguredDataEncryptionAlgorithms);
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy.java
index bad6243..c5f9a21 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy.java
@@ -21,7 +21,6 @@ import java.util.Collections;
import java.util.List;
import java.util.function.Function;
import java.util.function.Predicate;
-import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -30,7 +29,6 @@ import org.opensaml.xmlsec.algorithm.AlgorithmRegistry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.nimbusds.jose.JWEAlgorithm;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.shibboleth.oidc.security.criterion.ProviderMetadataCriterion;
@@ -61,7 +59,7 @@ public class ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy
* Can return {@code null} if the metadata does not describe its supported algorithms (which is optional).
*/
@Nonnull
- private final Function<OIDCProviderMetadata, List<JWEAlgorithm>> providerKeyTransportAlgorithmsLookupStrategy;
+ private final Function<OIDCProviderMetadata, List<String>> providerKeyTransportAlgorithmsLookupStrategy;
/**
* Constructor.
@@ -72,7 +70,7 @@ public class ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy
*/
public ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy(
@Nonnull @ParameterName(name="providerKeyTransportAlgorithmsLookupStrategy")
- final Function<OIDCProviderMetadata, List<JWEAlgorithm>> strategy,
+ final Function<OIDCProviderMetadata, List<String>> strategy,
@Nullable @ParameterName(name = "AlgorithmRegistry") final AlgorithmRegistry registry){
super(registry);
providerKeyTransportAlgorithmsLookupStrategy = Constraint.isNotNull(strategy, "The provider key transport "
@@ -87,7 +85,7 @@ public class ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy
*/
public ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy(
@Nonnull @ParameterName(name="providerKeyTransportAlgorithmsLookupStrategy")
- final Function<OIDCProviderMetadata, List<JWEAlgorithm>> strategy){
+ final Function<OIDCProviderMetadata, List<String>> strategy){
super(null);
providerKeyTransportAlgorithmsLookupStrategy = Constraint.isNotNull(strategy, "The provider key transport "
+ "lookup strategy can not be null");
@@ -106,7 +104,7 @@ public class ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy
}
// We populate the parameters for the algorithms the provider has registered in metadata
- final List<JWEAlgorithm> keyTransportAlgorithms =
+ final List<String> keyTransportAlgorithms =
providerKeyTransportAlgorithmsLookupStrategy.apply(metadata);
log.trace("Resolved effective key transport algorithms from provider metadata: {}", keyTransportAlgorithms);
if (keyTransportAlgorithms == null) {
@@ -121,8 +119,7 @@ public class ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy
keyTransportAlgorithmSupported);
final List<String> supportedAndConfiguredKeyTransportAlgorithms =
- findAlgorithmIntersection(keyTransportAlgorithms.stream().map(JWEAlgorithm::getName)
- .collect(Collectors.toList()),keyTransportAlgorithmSupported);
+ findAlgorithmIntersection(keyTransportAlgorithms, keyTransportAlgorithmSupported);
log.debug("Supported and configured key transport algorithms: {}",
supportedAndConfiguredKeyTransportAlgorithms);
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/impl/ProviderMetadataDataEncryptionAlgorithmsLookupStrategyTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/impl/ProviderMetadataDataEncryptionAlgorithmsLookupStrategyTest.java
index 871a916..8411da9 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/impl/ProviderMetadataDataEncryptionAlgorithmsLookupStrategyTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/impl/ProviderMetadataDataEncryptionAlgorithmsLookupStrategyTest.java
@@ -26,6 +26,7 @@ import java.io.Reader;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import javax.annotation.Nonnull;
@@ -37,6 +38,7 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.common.base.Predicates;
+import com.nimbusds.jose.EncryptionMethod;
import com.nimbusds.oauth2.sdk.ParseException;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
@@ -98,12 +100,14 @@ public class ProviderMetadataDataEncryptionAlgorithmsLookupStrategyTest {
EncryptionConstants.ALGO_ID_ENC_ALG_A256CBC_HS512, EncryptionConstants.ALGO_ID_ENC_ALG_A192CBC_HS384));
criteria = new CriteriaSet(new JWTEncryptionConfigurationCriterion(List.of(config)));
+ final OIDCProviderMetadata metadata = OIDCProviderMetadata.parse(readJsonFromFile(GOOD_PROVIDER_CONFIGURATION_INFO));
criteria.add(
- new ProviderMetadataCriterion(OIDCProviderMetadata.parse(readJsonFromFile(GOOD_PROVIDER_CONFIGURATION_INFO))));
+ new ProviderMetadataCriterion(metadata));
strategy =
- new ProviderMetadataDataEncryptionAlgorithmsLookupStrategy(
- OIDCProviderMetadata::getRequestObjectJWEEncs, algorithmRegistry);
+ new ProviderMetadataDataEncryptionAlgorithmsLookupStrategy(prc ->
+ metadata.getRequestObjectJWEEncs().stream().map(EncryptionMethod::getName)
+ .collect(Collectors.toList()), algorithmRegistry);
}
@Test
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/impl/ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategyTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/impl/ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategyTest.java
index 7d8ecdd..2fe90f9 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/impl/ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategyTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/impl/ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategyTest.java
@@ -26,6 +26,7 @@ import java.io.Reader;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import javax.annotation.Nonnull;
@@ -37,6 +38,7 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.common.base.Predicates;
+import com.nimbusds.jose.JWEAlgorithm;
import com.nimbusds.oauth2.sdk.ParseException;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
@@ -97,13 +99,14 @@ public class ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategyTest
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 JWTEncryptionConfigurationCriterion(List.of(config)));
- criteria.add(
- new ProviderMetadataCriterion(OIDCProviderMetadata.parse(readJsonFromFile(GOOD_PROVIDER_CONFIGURATION_INFO))));
+ criteria = new CriteriaSet(new JWTEncryptionConfigurationCriterion(List.of(config)));
+ final OIDCProviderMetadata metadata = OIDCProviderMetadata.parse(readJsonFromFile(GOOD_PROVIDER_CONFIGURATION_INFO));
+ criteria.add(new ProviderMetadataCriterion(metadata));
strategy =
- new ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy(
- OIDCProviderMetadata::getRequestObjectJWEAlgs, algorithmRegistry);
+ new ProviderMetadataKeyTransportEncryptionAlgorithmsLookupStrategy(prc ->
+ metadata.getRequestObjectJWEAlgs().stream().map(JWEAlgorithm::getName)
+ .collect(Collectors.toList()), algorithmRegistry);
}
@Test
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list