[java-oidc-common] branch dev/JCOMOIDC-41 updated: Create a JWT version of the Signature signing config class

Phil Smart philip.smart at jisc.ac.uk
Thu Aug 18 15:46:55 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=69918264572bed4a13f80087f2ebe5ac5daa3b76

The following commit(s) were added to refs/heads/dev/JCOMOIDC-41 by this push:
     new 6991826  Create a JWT version of the Signature signing config class
6991826 is described below

commit 69918264572bed4a13f80087f2ebe5ac5daa3b76
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Thu Aug 18 16:46:49 2022 +0100

    Create a JWT version of the Signature signing config class
---
 .../security/JWTSignatureSigningConfiguration.java | 30 +++++++
 .../JWTSignatureSigningConfigurationCriterion.java | 88 ++++++++++++++++++++
 .../impl/BasicJWTEncryptionParametersResolver.java |  2 +-
 .../BasicJWTSignatureSigningConfiguration.java     | 93 ++++++++++++++++++++++
 ...BasicJWTSignatureSigningParametersResolver.java | 15 ++--
 .../PopulateJWTSignatureSigningParameters.java     | 14 +---
 ...pulateJWTSignatureSigningParametersHandler.java | 31 +++-----
 .../profile/config/OIDCSecurityConfiguration.java  |  9 ++-
 8 files changed, 239 insertions(+), 43 deletions(-)

diff --git a/oidc-common-crypto-api/src/main/java/net/shibboleth/oidc/security/JWTSignatureSigningConfiguration.java b/oidc-common-crypto-api/src/main/java/net/shibboleth/oidc/security/JWTSignatureSigningConfiguration.java
new file mode 100644
index 0000000..91f1d2a
--- /dev/null
+++ b/oidc-common-crypto-api/src/main/java/net/shibboleth/oidc/security/JWTSignatureSigningConfiguration.java
@@ -0,0 +1,30 @@
+package net.shibboleth.oidc.security;
+
+import java.util.List;
+
+import javax.annotation.Nonnull;
+
+import org.opensaml.security.credential.Credential;
+import org.opensaml.xmlsec.AlgorithmPolicyConfiguration;
+
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
+import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
+
+public interface JWTSignatureSigningConfiguration extends AlgorithmPolicyConfiguration {
+    
+    /**
+     * Get the list of signing credentials to use when signing, in preference order.
+     * 
+     * @return the list of signing credentials, may be empty
+     */
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public List<Credential> getSigningCredentials();
+    
+    /**
+     * Get the list of preferred signature algorithm URIs, in preference order.
+     * 
+     * @return the list of algorithm URIs, may be empty
+     */
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public List<String> getSignatureAlgorithms();
+
+}
diff --git a/oidc-common-crypto-api/src/main/java/net/shibboleth/oidc/security/criterion/JWTSignatureSigningConfigurationCriterion.java b/oidc-common-crypto-api/src/main/java/net/shibboleth/oidc/security/criterion/JWTSignatureSigningConfigurationCriterion.java
new file mode 100644
index 0000000..a2d0c49
--- /dev/null
+++ b/oidc-common-crypto-api/src/main/java/net/shibboleth/oidc/security/criterion/JWTSignatureSigningConfigurationCriterion.java
@@ -0,0 +1,88 @@
+package net.shibboleth.oidc.security.criterion;
+
+import java.util.List;
+
+import javax.annotation.Nonnull;
+
+import org.opensaml.xmlsec.criterion.SignatureSigningConfigurationCriterion;
+
+import net.shibboleth.oidc.security.JWTSignatureSigningConfiguration;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
+import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.resolver.Criterion;
+
+public class JWTSignatureSigningConfigurationCriterion implements Criterion {
+    
+    /** The list of configuration instances. */
+    @Nonnull @NonnullElements private final List<JWTSignatureSigningConfiguration> configs;
+    
+    /**
+     * Constructor.
+     *
+     * @param configurations list of configuration instances
+     */
+    public JWTSignatureSigningConfigurationCriterion(@Nonnull @NonnullElements @NotEmpty final
+            List<JWTSignatureSigningConfiguration> configurations) {
+        configs = List.copyOf(Constraint.isNotNull(configurations, "List of configurations cannot be null"));
+        Constraint.isNotEmpty(configs, "At least one configuration is required");
+        
+    }
+    
+    /**
+     * Constructor.
+     *
+     * @param configurations varargs array of configuration instances
+     */
+    public JWTSignatureSigningConfigurationCriterion(@Nonnull @NonnullElements  @NotEmpty final
+            JWTSignatureSigningConfiguration... configurations) {
+        configs = List.of(Constraint.isNotNull(configurations, "List of configurations cannot be null"));
+        Constraint.isNotEmpty(configs, "At least one configuration is required");
+    }
+    
+    /**
+     * Get the list of configuration instances.
+     * @return the list of configuration instances
+     */
+    @Nonnull @NonnullElements @NotLive @Unmodifiable @NotEmpty
+    public List<JWTSignatureSigningConfiguration> getConfigurations() {
+        return configs;
+    }
+    
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        final StringBuilder builder = new StringBuilder();
+        builder.append("JWTSignatureSigningConfigurationCriterion [configs=");
+        builder.append(configs);
+        builder.append("]");
+        return builder.toString();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public int hashCode() {
+        return configs.hashCode();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean equals(final Object obj) {
+        if (this == obj) {
+            return true;
+        }
+
+        if (obj == null) {
+            return false;
+        }
+
+        if (obj instanceof JWTSignatureSigningConfigurationCriterion) {
+            return configs.equals(((JWTSignatureSigningConfigurationCriterion) obj).getConfigurations());
+        }
+
+        return false;
+    }
+
+}
\ No newline at end of file
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTEncryptionParametersResolver.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTEncryptionParametersResolver.java
index 8f7dcbc..93e1ce0 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTEncryptionParametersResolver.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTEncryptionParametersResolver.java
@@ -310,7 +310,7 @@ public class BasicJWTEncryptionParametersResolver extends AbstractSecurityParame
         
         for (final JWEAlgorithm algorithm : keyTransportAlgorithms) {   
             
-            if (JWEAlgorithm.DIR == algorithm) {  
+            if (JWEAlgorithm.DIR.equals(algorithm)) {  
                 // Is a direct encryption type, so need to populate the data enc. creds.
                 final Credential localCred = 
                         findCredentialThatSupportsAlgorithm(dataEncryptionCredentials, algorithm);
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTSignatureSigningConfiguration.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTSignatureSigningConfiguration.java
new file mode 100644
index 0000000..3df19c9
--- /dev/null
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTSignatureSigningConfiguration.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the University Corporation for Advanced Internet Development,
+ * Inc. (UCAID) under one or more contributor license agreements.  See the
+ * NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The UCAID licenses this file to You under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.oidc.security.impl;
+
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import org.opensaml.security.credential.Credential;
+import org.opensaml.xmlsec.impl.BasicAlgorithmPolicyConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import net.shibboleth.oidc.security.JWTSignatureSigningConfiguration;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
+import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
+public class BasicJWTSignatureSigningConfiguration extends BasicAlgorithmPolicyConfiguration 
+    implements JWTSignatureSigningConfiguration {
+    
+    /** Class logger. */
+    @Nonnull private final Logger log = LoggerFactory.getLogger(BasicJWTSignatureSigningConfiguration.class);
+    
+    /** Signing credentials. */
+    @Nonnull @NonnullElements private List<Credential> signingCredentials;
+    
+    /** Signature method algorithm URIs. */
+    @Nonnull @NonnullElements private List<String> signatureAlgorithms;
+    
+    /** Constructor. */
+    public BasicJWTSignatureSigningConfiguration() {
+        signingCredentials = Collections.emptyList();
+        signatureAlgorithms = Collections.emptyList();
+    }
+    
+    /** {@inheritDoc} */
+    @Override
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public List<Credential> getSigningCredentials() {
+        return signingCredentials;
+    }
+    
+    /**
+     * Set the signing credentials to use when signing.
+     * 
+     * @param credentials the list of signing credentials
+     */
+    public void setSigningCredentials(@Nullable @NonnullElements final List<Credential> credentials) {
+        if (credentials == null) {
+            signingCredentials = Collections.emptyList();
+        } else {
+            signingCredentials = List.copyOf(credentials);
+        }
+    }
+    
+    /** {@inheritDoc} */
+    @Override
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public List<String> getSignatureAlgorithms() {
+        return signatureAlgorithms;
+    }
+    
+    /**
+     * Set the signature algorithms to use when signing.
+     * 
+     * @param algorithms the list of signature algorithms
+     */
+    public void setSignatureAlgorithms(@Nullable @NonnullElements final List<String> algorithms) {
+        if (algorithms == null) {
+            signatureAlgorithms = Collections.emptyList();
+        } else {
+            signatureAlgorithms = List.copyOf(StringSupport.normalizeStringCollection(algorithms));
+        }
+    }
+
+}
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTSignatureSigningParametersResolver.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTSignatureSigningParametersResolver.java
index 41f39bd..223c68e 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTSignatureSigningParametersResolver.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/BasicJWTSignatureSigningParametersResolver.java
@@ -28,7 +28,6 @@ import javax.annotation.Nullable;
 
 import org.opensaml.security.credential.Credential;
 import org.opensaml.security.credential.CredentialSupport;
-import org.opensaml.xmlsec.SignatureSigningConfiguration;
 import org.opensaml.xmlsec.algorithm.AlgorithmRegistry;
 import org.opensaml.xmlsec.algorithm.AlgorithmSupport;
 import org.opensaml.xmlsec.criterion.SignatureSigningConfigurationCriterion;
@@ -38,8 +37,10 @@ import org.opensaml.xmlsec.impl.BasicSignatureSigningParametersResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.oidc.security.JWTSignatureSigningConfiguration;
 import net.shibboleth.oidc.security.JWTSignatureSigningParameters;
 import net.shibboleth.oidc.security.JWTSignatureSigningParametersResolver;
+import net.shibboleth.oidc.security.criterion.JWTSignatureSigningConfigurationCriterion;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.PredicateSupport;
@@ -110,7 +111,7 @@ public class BasicJWTSignatureSigningParametersResolver
     @Nullable
     public JWTSignatureSigningParameters resolveSingle(@Nonnull final CriteriaSet criteria) throws ResolverException {
         Constraint.isNotNull(criteria, "CriteriaSet was null");
-        Constraint.isNotNull(criteria.get(SignatureSigningConfigurationCriterion.class), 
+        Constraint.isNotNull(criteria.get(JWTSignatureSigningConfigurationCriterion.class), 
                 "Resolver requires an instance of SignatureSigningConfigurationCriterion");
         
         final Predicate<String> includeExcludePredicate = getIncludeExcludePredicate(criteria);
@@ -174,7 +175,7 @@ public class BasicJWTSignatureSigningParametersResolver
      */
     @Nonnull protected Predicate<String> getIncludeExcludePredicate(@Nonnull final CriteriaSet criteria) {
         return resolveIncludeExcludePredicate(criteria, 
-                criteria.get(SignatureSigningConfigurationCriterion.class).getConfigurations());
+                criteria.get(JWTSignatureSigningConfigurationCriterion.class).getConfigurations());
     }
 
     /**
@@ -244,8 +245,8 @@ public class BasicJWTSignatureSigningParametersResolver
      */
     @Nonnull protected List<Credential> getEffectiveSigningCredentials(@Nonnull final CriteriaSet criteria) {
         final ArrayList<Credential> accumulator = new ArrayList<>();
-        for (final SignatureSigningConfiguration config : criteria.get(SignatureSigningConfigurationCriterion.class)
-                .getConfigurations()) {
+        for (final JWTSignatureSigningConfiguration config : 
+            criteria.get(JWTSignatureSigningConfigurationCriterion.class).getConfigurations()) {
             
             accumulator.addAll(config.getSigningCredentials());
             
@@ -264,8 +265,8 @@ public class BasicJWTSignatureSigningParametersResolver
     @Nonnull protected List<String> getEffectiveSignatureAlgorithms(@Nonnull final CriteriaSet criteria, 
             @Nonnull final Predicate<String> includeExcludePredicate) {
         final ArrayList<String> accumulator = new ArrayList<>();
-        for (final SignatureSigningConfiguration config : criteria.get(SignatureSigningConfigurationCriterion.class)
-                .getConfigurations()) {
+        for (final JWTSignatureSigningConfiguration config : 
+            criteria.get(JWTSignatureSigningConfigurationCriterion.class).getConfigurations()) {
             
             config.getSignatureAlgorithms()
                 .stream()
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/PopulateJWTSignatureSigningParameters.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/PopulateJWTSignatureSigningParameters.java
index 55f7e96..84536d1 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/PopulateJWTSignatureSigningParameters.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/PopulateJWTSignatureSigningParameters.java
@@ -21,6 +21,7 @@ import org.slf4j.LoggerFactory;
 
 import net.shibboleth.oidc.metadata.context.OIDCMetadataContext;
 import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
+import net.shibboleth.oidc.security.JWTSignatureSigningConfiguration;
 import net.shibboleth.oidc.security.JWTSignatureSigningParametersResolver;
 import net.shibboleth.oidc.security.context.JWTSecurityParametersContext;
 import net.shibboleth.utilities.java.support.annotation.ParameterName;
@@ -43,7 +44,7 @@ public class PopulateJWTSignatureSigningParameters
     
     /** Strategy used to look up a per-request {@link SignatureSigningConfiguration} list. */
     @NonnullAfterInit 
-    private Function<ProfileRequestContext, List<SignatureSigningConfiguration>> configurationLookupStrategy;
+    private Function<ProfileRequestContext, List<JWTSignatureSigningConfiguration>> configurationLookupStrategy;
     
     /** Strategy used to look up a OIDC client metadata context. */
     @Nullable private Function<ProfileRequestContext, OIDCMetadataContext> oidcClientMetadataContextLookupStrategy;
@@ -133,7 +134,7 @@ public class PopulateJWTSignatureSigningParameters
      * @param strategy lookup strategy
      */
     public void setConfigurationLookupStrategy(
-            @Nonnull final Function<ProfileRequestContext, List<SignatureSigningConfiguration>> strategy) {
+            @Nonnull final Function<ProfileRequestContext, List<JWTSignatureSigningConfiguration>> strategy) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
 
         configurationLookupStrategy =
@@ -174,14 +175,7 @@ public class PopulateJWTSignatureSigningParameters
         
         if (resolver == null) {
             throw new ComponentInitializationException("SignatureSigningParametersResolver cannot be null");
-        } else if (configurationLookupStrategy == null) {
-            configurationLookupStrategy = new Function<>() {
-                public List<SignatureSigningConfiguration> apply(final ProfileRequestContext input) {
-                    return Collections.singletonList(
-                            SecurityConfigurationSupport.getGlobalSignatureSigningConfiguration());
-                }
-            };
-        }
+        } 
 
         final PopulateJWTSignatureSigningParametersHandler delegate = getDelegate();
         delegate.setNoResultIsError(noResultIsError);
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/PopulateJWTSignatureSigningParametersHandler.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/PopulateJWTSignatureSigningParametersHandler.java
index 707fc29..f1243cb 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/PopulateJWTSignatureSigningParametersHandler.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/impl/PopulateJWTSignatureSigningParametersHandler.java
@@ -17,7 +17,6 @@
 
 package net.shibboleth.oidc.security.impl;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.function.Function;
 
@@ -30,10 +29,6 @@ import org.opensaml.messaging.context.navigate.RecursiveTypedParentContextLookup
 import org.opensaml.messaging.handler.AbstractMessageHandler;
 import org.opensaml.messaging.handler.MessageHandlerException;
 import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.xmlsec.SecurityConfigurationSupport;
-import org.opensaml.xmlsec.SignatureSigningConfiguration;
-import org.opensaml.xmlsec.context.SecurityParametersContext;
-import org.opensaml.xmlsec.criterion.SignatureSigningConfigurationCriterion;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -41,10 +36,12 @@ import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.oidc.metadata.context.OIDCMetadataContext;
 import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
 import net.shibboleth.oidc.profile.config.OIDCAuthorizationConfiguration;
+import net.shibboleth.oidc.security.JWTSignatureSigningConfiguration;
 import net.shibboleth.oidc.security.JWTSignatureSigningParameters;
 import net.shibboleth.oidc.security.JWTSignatureSigningParametersResolver;
 import net.shibboleth.oidc.security.context.JWTSecurityParametersContext;
 import net.shibboleth.oidc.security.criterion.ClientInformationCriterion;
+import net.shibboleth.oidc.security.criterion.JWTSignatureSigningConfigurationCriterion;
 import net.shibboleth.oidc.security.criterion.ProviderMetadataCriterion;
 import net.shibboleth.oidc.security.criterion.StaticCredentialCriterion;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
@@ -66,8 +63,8 @@ public class PopulateJWTSignatureSigningParametersHandler extends AbstractMessag
     /** Strategy used to look up an existing {@link JWTSecurityParametersContext} to copy. */
     @Nullable private Function<MessageContext,JWTSecurityParametersContext> existingParametersContextLookupStrategy;
     
-    /** Strategy used to look up a per-request {@link SignatureSigningConfiguration} list. */
-    @NonnullAfterInit private Function<MessageContext, List<SignatureSigningConfiguration>> configurationLookupStrategy;
+    /** Strategy used to look up a per-request {@link JWTSignatureSigningConfiguration} list. */
+    @NonnullAfterInit private Function<MessageContext, List<JWTSignatureSigningConfiguration>> configurationLookupStrategy;
     
     /** Strategy used to look up a OIDC client metadata context. */
     @Nonnull private Function<MessageContext, OIDCMetadataContext> oidcClientMetadataContextLookupStrategy;
@@ -108,7 +105,7 @@ public class PopulateJWTSignatureSigningParametersHandler extends AbstractMessag
     }
     
     /**
-     * Set the strategy used to look up the {@link SecurityParametersContext} to set the parameters for.
+     * Set the strategy used to look up the {@link JWTSecurityParametersContext} to set the parameters for.
      * 
      * @param strategy lookup strategy
      */
@@ -172,12 +169,12 @@ public class PopulateJWTSignatureSigningParametersHandler extends AbstractMessag
     }
     
     /**
-     * Set the strategy used to look up a per-request {@link SignatureSigningConfiguration} list.
+     * Set the strategy used to look up a per-request {@link JWTSignatureSigningConfiguration} list.
      * 
      * @param strategy lookup strategy
      */
     public void setConfigurationLookupStrategy(
-            @Nonnull final Function<MessageContext, List<SignatureSigningConfiguration>> strategy) {
+            @Nonnull final Function<MessageContext, List<JWTSignatureSigningConfiguration>> strategy) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
 
         configurationLookupStrategy =
@@ -206,15 +203,7 @@ public class PopulateJWTSignatureSigningParametersHandler extends AbstractMessag
 
         if (resolver == null) {
             throw new ComponentInitializationException("SignatureSigningParametersResolver cannot be null");
-        } else if (configurationLookupStrategy == null) {
-            configurationLookupStrategy = new Function<MessageContext, List<SignatureSigningConfiguration>>() {
-                @Override
-                public List<SignatureSigningConfiguration> apply(final MessageContext input) {
-                    return Collections
-                            .singletonList(SecurityConfigurationSupport.getGlobalSignatureSigningConfiguration());
-                }
-            };
-        }
+        } 
     }
     
     /** {@inheritDoc} */
@@ -249,13 +238,13 @@ public class PopulateJWTSignatureSigningParametersHandler extends AbstractMessag
             }
         }
 
-        final List<SignatureSigningConfiguration> configs = configurationLookupStrategy.apply(messageContext);
+        final List<JWTSignatureSigningConfiguration> configs = configurationLookupStrategy.apply(messageContext);
         if (configs == null || configs.isEmpty()) {
             log.error("{} No SignatureSigningConfiguration returned by lookup strategy", getLogPrefix());
             throw new MessageHandlerException("No SignatureSigningConfiguration returned by lookup strategy");
         }
 
-        final CriteriaSet criteria = new CriteriaSet(new SignatureSigningConfigurationCriterion(configs));
+        final CriteriaSet criteria = new CriteriaSet(new JWTSignatureSigningConfigurationCriterion(configs));
 
         // Add client metadata criterion
         final OIDCMetadataContext oidcMetadataCtx = oidcClientMetadataContextLookupStrategy.apply(messageContext);
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSecurityConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSecurityConfiguration.java
index 24b72b8..35e4e4b 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSecurityConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSecurityConfiguration.java
@@ -26,6 +26,7 @@ import com.nimbusds.jwt.SignedJWT;
 
 import net.shibboleth.idp.profile.config.SecurityConfiguration;
 import net.shibboleth.oidc.security.JWTEncryptionConfiguration;
+import net.shibboleth.oidc.security.JWTSignatureSigningConfiguration;
 
 /**
  * Class extends SecurityConfiguration to support separate configuration for request object decryption and signature
@@ -50,7 +51,7 @@ public class OIDCSecurityConfiguration extends SecurityConfiguration {
     
     /** Configuration used when singing request objects. */
     @Nullable
-    private SignatureSigningConfiguration requestObjectSignatureSigningConfig;
+    private JWTSignatureSigningConfiguration requestObjectSignatureSigningConfig;
 
     /** Configuration used when validating token endpoint authentication JWT signatures. */
     @Nullable
@@ -115,7 +116,7 @@ public class OIDCSecurityConfiguration extends SecurityConfiguration {
      * 
      * @param config configuration used when encrypting RequestObject JWTs, or null
      */
-    public void setRequestObjectEncryptionConfig(@Nullable final JWTEncryptionConfiguration config) {
+    public void setRequestObjectEncryptionConfiguration(@Nullable final JWTEncryptionConfiguration config) {
         requestObjectEncryptionConfig = config;
     }
     
@@ -153,7 +154,7 @@ public class OIDCSecurityConfiguration extends SecurityConfiguration {
      * @return configuration used when signing request object information, or null
      */
     @Nullable
-    public SignatureSigningConfiguration getRequestObjectSignatureSigningConfiguration() {
+    public JWTSignatureSigningConfiguration getRequestObjectSignatureSigningConfiguration() {
         return requestObjectSignatureSigningConfig;
     }
 
@@ -162,7 +163,7 @@ public class OIDCSecurityConfiguration extends SecurityConfiguration {
      * 
      * @param config used when signing request object information, or null
      */
-    public void setRequestObjectSignatureSigningConfiguration(@Nullable final SignatureSigningConfiguration config) {
+    public void setRequestObjectSignatureSigningConfiguration(@Nullable final JWTSignatureSigningConfiguration config) {
         requestObjectSignatureSigningConfig = config;
     }
     

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


More information about the commits mailing list