[java-idp-oidc] 01/02: JOIDC-222 - Support for OpenID Federation

Henri Mikkonen henri.mikkonen at iki.fi
Wed Mar 26 15:05:08 UTC 2025


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

hjmikkon pushed a commit to branch dev/JOIDC-222
in repository java-idp-oidc.

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-oidc.git;a=commit;h=9967df144e24b1067cd3927bd23426cfe3ee5738

commit 9967df144e24b1067cd3927bd23426cfe3ee5738
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Thu Mar 20 10:35:32 2025 +0200

    JOIDC-222 - Support for OpenID Federation
    
    https://shibboleth.atlassian.net/browse/JOIDC-222
    
    - New interface: OIDFederationEntityStatementProducingProfileConfiguration
      - Exploited by OIDFED.Configuration and OIDFED.ExplicitRegistration
    - Harmonised profile configuration naming (postfix ProfileConfiguration)
    - Moved the federation configuration flow test into the oidfed-package
---
 ...AutomaticRegistrationProfileConfiguration.java} |  8 ++--
 ...onEntityConfigurationProfileConfiguration.java} |  8 ++--
 ...nExplicitRegistrationProfileConfiguration.java} | 47 ++++++++++++++++++++--
 ...AutomaticRegistrationProfileConfiguration.java} |  2 +-
 ...onEntityConfigurationProfileConfiguration.java} | 18 +--------
 ...tityStatementProducingProfileConfiguration.java | 43 ++++++++++++++++++++
 ...nExplicitRegistrationProfileConfiguration.java} |  5 ++-
 ...java => OIDFederationProfileConfiguration.java} | 10 ++---
 .../TokenEndpointAuthMethodLookupFunction.java     |  6 +--
 ...ormOutboundFederationConfigurationResponse.java |  4 +-
 .../navigate/AuthorityHintsLookupFunction.java     |  6 +--
 ...achedEntityStatementLifetimeLookupFunction.java |  6 +--
 ...laimsSetManipulationStrategyLookupFunction.java | 13 +++---
 .../EntityStatementLifetimeLookupFunction.java     |  6 +--
 .../oidc/metadata-lookup/metadata-lookup-beans.xml |  2 +-
 .../entity-configuration-beans.xml                 |  4 +-
 .../entity-configuration-flow.xml                  |  2 +-
 .../idp/flows/oidfed/register/register-beans.xml   |  6 +--
 .../idp/service/relying-party/postconfig.xml       | 26 ++++++------
 .../EntityConfigurationFlowTest.java}              |  6 +--
 20 files changed, 147 insertions(+), 81 deletions(-)

diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationAutomaticRegistrationConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationAutomaticRegistrationProfileConfiguration.java
similarity index 79%
rename from idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationAutomaticRegistrationConfiguration.java
rename to idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationAutomaticRegistrationProfileConfiguration.java
index 01bc35d5..878433b7 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationAutomaticRegistrationConfiguration.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationAutomaticRegistrationProfileConfiguration.java
@@ -21,9 +21,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 /**
  * Implementation of a profile configuration for the OpenID Federation Automatic Registration.
  */
-public class DefaultOIDFederationAutomaticRegistrationConfiguration
+public class DefaultOIDFederationAutomaticRegistrationProfileConfiguration
     extends AbstractOIDFederationRegistrationProfileConfiguration
-    implements OIDFederationAutomaticRegistrationConfiguration {
+    implements OIDFederationAutomaticRegistrationProfileConfiguration {
 
     /** OIDC provider information profile counter name. */
     @Nonnull @NotEmpty
@@ -32,7 +32,7 @@ public class DefaultOIDFederationAutomaticRegistrationConfiguration
     /**
      * Constructor.
      */
-    public DefaultOIDFederationAutomaticRegistrationConfiguration() {
+    public DefaultOIDFederationAutomaticRegistrationProfileConfiguration() {
         this(PROFILE_ID);
     }
 
@@ -41,7 +41,7 @@ public class DefaultOIDFederationAutomaticRegistrationConfiguration
      *
      * @param profileId Unique profile identifier.
      */
-    public DefaultOIDFederationAutomaticRegistrationConfiguration(@Nonnull @NotEmpty final String profileId) {
+    public DefaultOIDFederationAutomaticRegistrationProfileConfiguration(@Nonnull @NotEmpty final String profileId) {
         super(profileId);
     }
 }
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationEntityConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationEntityConfigurationProfileConfiguration.java
similarity index 96%
rename from idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationEntityConfiguration.java
rename to idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationEntityConfigurationProfileConfiguration.java
index 44612cf4..bd020687 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationEntityConfiguration.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationEntityConfigurationProfileConfiguration.java
@@ -38,8 +38,8 @@ import net.shibboleth.shared.logic.FunctionSupport;
 /**
  * Implementation of a profile configuration for the OpenID Federation Entity Configuration.
  */
-public class DefaultOIDFederationEntityConfiguration extends AbstractConditionalProfileConfiguration
-        implements OIDFederationEntityConfiguration {
+public class DefaultOIDFederationEntityConfigurationProfileConfiguration extends AbstractConditionalProfileConfiguration
+        implements OIDFederationEntityConfigurationProfileConfiguration {
 
     /** OIDC provider information profile counter name. */
     @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.oidfed.configuration";
@@ -64,7 +64,7 @@ public class DefaultOIDFederationEntityConfiguration extends AbstractConditional
     /**
      * Constructor.
      */
-    public DefaultOIDFederationEntityConfiguration() {
+    public DefaultOIDFederationEntityConfigurationProfileConfiguration() {
         this(PROFILE_ID);
     }
     
@@ -73,7 +73,7 @@ public class DefaultOIDFederationEntityConfiguration extends AbstractConditional
      *
      * @param profileId Unique profile identifier.
      */
-    public DefaultOIDFederationEntityConfiguration(@Nonnull @NotEmpty final String profileId) {
+    public DefaultOIDFederationEntityConfigurationProfileConfiguration(@Nonnull @NotEmpty final String profileId) {
         super(profileId);
         issuerLookupStrategy = FunctionSupport.constant(null);
         authorityHintsLookupStrategy = FunctionSupport.constant(CollectionSupport.emptyList());
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationExplicitRegistrationConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationExplicitRegistrationProfileConfiguration.java
similarity index 77%
rename from idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationExplicitRegistrationConfiguration.java
rename to idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationExplicitRegistrationProfileConfiguration.java
index 4cacb53a..2f5f1bd4 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationExplicitRegistrationConfiguration.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/DefaultOIDFederationExplicitRegistrationProfileConfiguration.java
@@ -15,7 +15,9 @@
 package net.shibboleth.idp.plugin.oidc.op.oidfed.config;
 
 import java.util.Collection;
+import java.util.Map;
 import java.util.Set;
+import java.util.function.BiFunction;
 import java.util.function.Function;
 import java.util.function.Predicate;
 
@@ -39,9 +41,9 @@ import net.shibboleth.shared.primitive.StringSupport;
 /**
  * Implementation of a profile configuration for the OpenID Federation Explicit Registration.
  */
-public class DefaultOIDFederationExplicitRegistrationConfiguration
+public class DefaultOIDFederationExplicitRegistrationProfileConfiguration
         extends AbstractOIDFederationRegistrationProfileConfiguration
-        implements OIDFederationExplicitRegistrationConfiguration {
+        implements OIDFederationExplicitRegistrationProfileConfiguration {
 
     /** OIDC provider information profile counter name. */
     @Nonnull @NotEmpty
@@ -59,10 +61,15 @@ public class DefaultOIDFederationExplicitRegistrationConfiguration
     /** Enabled token endpoint authentication methods. */
     @Nonnull private Function<ProfileRequestContext,Set<String>> tokenEndpointAuthMethodsLookupStrategy;
 
+    /** Lookup function to supply strategy bi-function for manipulating entity statement claims set. */ 
+    @Nonnull
+    private Function<ProfileRequestContext,BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>>
+        entityStatementClaimsSetManipulationStrategyLookupStrategy;    
+
     /**
      * Constructor.
      */
-    public DefaultOIDFederationExplicitRegistrationConfiguration() {
+    public DefaultOIDFederationExplicitRegistrationProfileConfiguration() {
         this(PROFILE_ID);
     }
 
@@ -71,7 +78,7 @@ public class DefaultOIDFederationExplicitRegistrationConfiguration
      *
      * @param profileId Unique profile identifier.
      */
-    public DefaultOIDFederationExplicitRegistrationConfiguration(@Nonnull @NotEmpty final String profileId) {
+    public DefaultOIDFederationExplicitRegistrationProfileConfiguration(@Nonnull @NotEmpty final String profileId) {
         super(profileId);
         authorizationCodeFlowPredicate = PredicateSupport.alwaysTrue();
         implicitFlowPredicate = PredicateSupport.alwaysTrue();
@@ -82,6 +89,7 @@ public class DefaultOIDFederationExplicitRegistrationConfiguration
                         ClientAuthenticationMethod.CLIENT_SECRET_POST.toString(),
                         ClientAuthenticationMethod.CLIENT_SECRET_JWT.toString(),
                         ClientAuthenticationMethod.PRIVATE_KEY_JWT.toString()));
+        entityStatementClaimsSetManipulationStrategyLookupStrategy = FunctionSupport.constant(null);
     }
 
     /** {@inheritDoc} */
@@ -192,4 +200,35 @@ public class DefaultOIDFederationExplicitRegistrationConfiguration
             @Nonnull final Function<ProfileRequestContext,Set<String>> strategy) {
         tokenEndpointAuthMethodsLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
     }
+
+    /** {@inheritDoc} */
+    @Override
+    @Nullable
+    public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+        getEntityStatementClaimsSetManipulationStrategy(
+            @Nullable final ProfileRequestContext profileRequestContext) {
+        return entityStatementClaimsSetManipulationStrategyLookupStrategy.apply(profileRequestContext);
+    }
+
+    /**
+     * Set the bi-function for manipulating entity statement claims set.
+     * 
+     * @param strategy bi-function for manipulating entity statement claims set
+     */
+    public void setEntityStatementClaimsSetManipulationStrategy(
+            @Nullable final BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>> strategy) {
+        entityStatementClaimsSetManipulationStrategyLookupStrategy = FunctionSupport.constant(strategy);
+    }
+
+    /**
+     * Set a lookup strategy for the bi-function for manipulating entity statement claims set.
+     *
+     * @param strategy lookup strategy
+     */
+    public void setEntityStatementClaimsSetManipulationStrategyLookupStrategy(@Nonnull final 
+            Function<ProfileRequestContext,BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>>
+            strategy) {
+        entityStatementClaimsSetManipulationStrategyLookupStrategy = Constraint.isNotNull(strategy,
+                "Lookup strategy cannot be null");
+    }
 }
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationProfileConfiguration.java
similarity index 87%
copy from idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationConfiguration.java
copy to idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationProfileConfiguration.java
index fe07f232..ea48d688 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationConfiguration.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationProfileConfiguration.java
@@ -17,7 +17,7 @@ package net.shibboleth.idp.plugin.oidc.op.oidfed.config;
 /** 
  * Profile configuration for an OpenID Federation Automatic Registration.
  */
-public interface OIDFederationAutomaticRegistrationConfiguration extends OIDFederationRegistrationProfileConfiguration {
+public interface OIDFederationAutomaticRegistrationProfileConfiguration extends OIDFederationRegistrationProfileConfiguration {
 
     /** ID for this profile configuration. */
     public static final String PROFILE_ID = "http://shibboleth.net/ns/profiles/oidfed/automaticregistration";
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityConfigurationProfileConfiguration.java
similarity index 78%
rename from idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityConfiguration.java
rename to idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityConfigurationProfileConfiguration.java
index f797e681..1460958e 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityConfiguration.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityConfigurationProfileConfiguration.java
@@ -16,15 +16,12 @@ package net.shibboleth.idp.plugin.oidc.op.oidfed.config;
 
 import java.time.Duration;
 import java.util.List;
-import java.util.Map;
-import java.util.function.BiFunction;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.oidc.profile.config.OIDCProfileConfiguration;
 import net.shibboleth.profile.config.OverriddenIssuerProfileConfiguration;
 import net.shibboleth.shared.annotation.ConfigurationSetting;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
@@ -35,8 +32,8 @@ import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 /** 
  * Profile configuration for an OpenID Federation Entity Configuration.
  */
-public interface OIDFederationEntityConfiguration extends OverriddenIssuerProfileConfiguration, 
-    OIDCProfileConfiguration {
+public interface OIDFederationEntityConfigurationProfileConfiguration extends OverriddenIssuerProfileConfiguration, 
+    OIDFederationProfileConfiguration, OIDFederationEntityStatementProducingProfileConfiguration {
     
     /** OIDC base protocol URI. Section 4 is relevant. */
     public static final String PROTOCOL_URI = "https://openid.net/specs/openid-federation-1_0.html";
@@ -80,15 +77,4 @@ public interface OIDFederationEntityConfiguration extends OverriddenIssuerProfil
     @Positive @Nonnull
     Duration getCachedEntityStatementLifetime(@Nullable final ProfileRequestContext profileRequestContext);
 
-    /**
-     * Get the bi-function for manipulating entity statement claims set.
-     * 
-     * @param profileRequestContext profile request context
-     * 
-     * @return the bi-function for manipulating entity statement claims set
-     */
-    @ConfigurationSetting(name="entityStatementClaimsSetManipulationStrategy")
-    @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
-        getEntityStatementClaimsSetManipulationStrategy(
-                @Nullable final ProfileRequestContext profileRequestContext);
 }
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityStatementProducingProfileConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityStatementProducingProfileConfiguration.java
new file mode 100644
index 00000000..61711f66
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationEntityStatementProducingProfileConfiguration.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed 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.idp.plugin.oidc.op.oidfed.config;
+
+import java.util.Map;
+import java.util.function.BiFunction;
+
+import javax.annotation.Nullable;
+
+import org.opensaml.profile.context.ProfileRequestContext;
+
+import net.shibboleth.shared.annotation.ConfigurationSetting;
+
+/** 
+ * Configuration common to OpenID Federation Entity Statement producing profiles.
+ */
+public interface OIDFederationEntityStatementProducingProfileConfiguration extends OIDFederationProfileConfiguration {
+
+    /**
+     * Get the bi-function for manipulating entity statement claims set.
+     * 
+     * @param profileRequestContext profile request context
+     * 
+     * @return the bi-function for manipulating entity statement claims set
+     */
+    @ConfigurationSetting(name="entityStatementClaimsSetManipulationStrategy")
+    @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+        getEntityStatementClaimsSetManipulationStrategy(
+                @Nullable final ProfileRequestContext profileRequestContext);
+
+}
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationExplicitRegistrationConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationExplicitRegistrationProfileConfiguration.java
similarity index 91%
rename from idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationExplicitRegistrationConfiguration.java
rename to idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationExplicitRegistrationProfileConfiguration.java
index 7efcc2ea..7e0e94d9 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationExplicitRegistrationConfiguration.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationExplicitRegistrationProfileConfiguration.java
@@ -30,8 +30,9 @@ import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 /** 
  * Profile configuration for an OpenID Federation Explicit Registration.
  */
-public interface OIDFederationExplicitRegistrationConfiguration
-    extends OIDFederationRegistrationProfileConfiguration, OAuth2FlowAwareProfileConfiguration {
+public interface OIDFederationExplicitRegistrationProfileConfiguration
+    extends OIDFederationRegistrationProfileConfiguration, OAuth2FlowAwareProfileConfiguration,
+        OIDFederationEntityStatementProducingProfileConfiguration {
 
     /** ID for this profile configuration. */
     public static final String PROFILE_ID = "http://shibboleth.net/ns/profiles/oidfed/explicitregistration";
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationProfileConfiguration.java
similarity index 63%
rename from idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationConfiguration.java
rename to idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationProfileConfiguration.java
index fe07f232..5abc9269 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationAutomaticRegistrationConfiguration.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/OIDFederationProfileConfiguration.java
@@ -14,12 +14,10 @@
 
 package net.shibboleth.idp.plugin.oidc.op.oidfed.config;
 
-/** 
- * Profile configuration for an OpenID Federation Automatic Registration.
- */
-public interface OIDFederationAutomaticRegistrationConfiguration extends OIDFederationRegistrationProfileConfiguration {
+import net.shibboleth.oidc.profile.oauth2.config.OAuth2ProfileConfiguration;
+
+/** Common interface for OpenID Federation 1.0 Profile Configurations.*/
+public interface OIDFederationProfileConfiguration extends OAuth2ProfileConfiguration {  
 
-    /** ID for this profile configuration. */
-    public static final String PROFILE_ID = "http://shibboleth.net/ns/profiles/oidfed/automaticregistration";
 
 }
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/TokenEndpointAuthMethodLookupFunction.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/TokenEndpointAuthMethodLookupFunction.java
index 286349ee..2758248a 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/TokenEndpointAuthMethodLookupFunction.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/config/TokenEndpointAuthMethodLookupFunction.java
@@ -29,7 +29,7 @@ import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunctio
 
 /**
  * A function that obtains
- * {@link OIDFederationExplicitRegistrationConfiguration#getTokenEndpointAuthMethods(ProfileRequestContext)}
+ * {@link OIDFederationExplicitRegistrationProfileConfiguration#getTokenEndpointAuthMethods(ProfileRequestContext)}
  * if such a profile is available from a {@link RelyingPartyContext} obtained via a lookup function,
  * by default a child of the {@link ProfileRequestContext}. That result is then transformed into a list
  * of {@link ClientAuthenticationMethod}s.
@@ -44,8 +44,8 @@ public class TokenEndpointAuthMethodLookupFunction
     @Nullable public Set<ClientAuthenticationMethod> apply(@Nullable final ProfileRequestContext input) {
         return Optional.ofNullable(getRelyingPartyContextLookupStrategy().apply(input))
                 .map(relyingPartyContext -> relyingPartyContext.getProfileConfig())
-                .filter(OIDFederationExplicitRegistrationConfiguration.class::isInstance)
-                .map(OIDFederationExplicitRegistrationConfiguration.class::cast)
+                .filter(OIDFederationExplicitRegistrationProfileConfiguration.class::isInstance)
+                .map(OIDFederationExplicitRegistrationProfileConfiguration.class::cast)
                 .map(config -> config.getTokenEndpointAuthMethods(input).stream()
                     .map(ClientAuthenticationMethod::new)
                     .collect(Collectors.toUnmodifiableSet()))
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/impl/FormOutboundFederationConfigurationResponse.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/impl/FormOutboundFederationConfigurationResponse.java
index c9bd012b..635ece0f 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/impl/FormOutboundFederationConfigurationResponse.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/impl/FormOutboundFederationConfigurationResponse.java
@@ -35,7 +35,7 @@ import com.nimbusds.oauth2.sdk.ParseException;
 import com.nimbusds.openid.connect.sdk.federation.config.FederationEntityConfigurationSuccessResponse;
 import com.nimbusds.openid.connect.sdk.federation.entities.EntityStatement;
 
-import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfiguration;
+import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfigurationProfileConfiguration;
 import net.shibboleth.idp.plugin.oidc.op.oidfed.profile.navigate.CachedEntityStatementLifetimeLookupFunction;
 import net.shibboleth.idp.profile.AbstractProfileAction;
 import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
@@ -129,7 +129,7 @@ public class FormOutboundFederationConfigurationResponse extends AbstractProfile
             assert jwt != null;
             final String serializedJwt = jwt.serialize();
             assert serializedJwt != null;
-            storageService.create(OIDFederationEntityConfiguration.PROFILE_ID, "entityStatement", serializedJwt, Instant.now().plus(lifetime).toEpochMilli());
+            storageService.create(OIDFederationEntityConfigurationProfileConfiguration.PROFILE_ID, "entityStatement", serializedJwt, Instant.now().plus(lifetime).toEpochMilli());
         } catch (final IOException e) {
             log.warn("{} Could not store the entity statement into storage service", getLogPrefix(), e);
         }
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/AuthorityHintsLookupFunction.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/AuthorityHintsLookupFunction.java
index a516768b..8db21f0f 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/AuthorityHintsLookupFunction.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/AuthorityHintsLookupFunction.java
@@ -23,10 +23,10 @@ import org.opensaml.profile.context.ProfileRequestContext;
 import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfiguration;
+import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfigurationProfileConfiguration;
 
 /**
- * A function that obtains {@link OIDFederationEntityConfiguration#getAuthorityHints(ProfileRequestContext)}.
+ * A function that obtains {@link OIDFederationEntityConfigurationProfileConfiguration#getAuthorityHints(ProfileRequestContext)}.
  * 
  * <p>If a specific setting is unavailable, a null value is returned.</p>
  */
@@ -38,7 +38,7 @@ public class AuthorityHintsLookupFunction extends AbstractRelyingPartyLookupFunc
         final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
         if (rpc != null) {
             final ProfileConfiguration pc = rpc.getProfileConfig();
-            if (pc instanceof OIDFederationEntityConfiguration ofec) {
+            if (pc instanceof OIDFederationEntityConfigurationProfileConfiguration ofec) {
                 return ofec.getAuthorityHints(input);
             }
         }
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/CachedEntityStatementLifetimeLookupFunction.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/CachedEntityStatementLifetimeLookupFunction.java
index c3bd31a8..d8ca4f4f 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/CachedEntityStatementLifetimeLookupFunction.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/CachedEntityStatementLifetimeLookupFunction.java
@@ -23,11 +23,11 @@ import org.opensaml.profile.context.ProfileRequestContext;
 import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfiguration;
+import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfigurationProfileConfiguration;
 
 /**
  * A function that returns
- * {@link OIDFederationEntityConfiguration#getCachedEntityStatementLifetime(ProfileRequestContext)} if such a profile
+ * {@link OIDFederationEntityConfigurationProfileConfiguration#getCachedEntityStatementLifetime(ProfileRequestContext)} if such a profile
  * is available from a {@link RelyingPartyContext} obtained via a lookup function, by default a child of the
  * {@link ProfileRequestContext}.
  * 
@@ -41,7 +41,7 @@ public class CachedEntityStatementLifetimeLookupFunction extends AbstractRelying
         final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
         if (rpc != null) {
             final ProfileConfiguration pc = rpc.getProfileConfig();
-            if (pc instanceof OIDFederationEntityConfiguration ofec) {
+            if (pc instanceof OIDFederationEntityConfigurationProfileConfiguration ofec) {
                 return ofec.getCachedEntityStatementLifetime(input);
             }
         }
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/EntityStatementClaimsSetManipulationStrategyLookupFunction.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/EntityStatementClaimsSetManipulationStrategyLookupFunction.java
index 3cdb4397..eb1cdb66 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/EntityStatementClaimsSetManipulationStrategyLookupFunction.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/EntityStatementClaimsSetManipulationStrategyLookupFunction.java
@@ -21,16 +21,15 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfiguration;
+import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityStatementProducingProfileConfiguration;
 import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 
 /**
- * A function that returns
- * {@link OIDFederationEntityConfiguration#getEntityStatementClaimsSetManipulationStrategy(ProfileRequestContext)} if
- * such a profile is available from a {@link RelyingPartyContext} obtained via a lookup function, by default a child of
- * the {@link ProfileRequestContext}.
+ * A function that returns entity statement claims set manipulation strategy from
+ * {@link OIDFederationEntityStatementProducingProfileConfiguration} if such a profile is available from a
+ * {@link RelyingPartyContext} obtained via a lookup function, by default a child of the {@link ProfileRequestContext}.
  * 
  * <p>If a specific setting is unavailable, a null value is returned.</p>
  */
@@ -44,8 +43,8 @@ public class EntityStatementClaimsSetManipulationStrategyLookupFunction  extends
         final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
         if (rpc != null) {
             final ProfileConfiguration pc = rpc.getProfileConfig();
-            if (pc instanceof OIDFederationEntityConfiguration ofec) {
-                return ofec.getEntityStatementClaimsSetManipulationStrategy(input);
+            if (pc instanceof OIDFederationEntityStatementProducingProfileConfiguration ofesppc) {
+                return ofesppc.getEntityStatementClaimsSetManipulationStrategy(input);
             }
         }
         return null;
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/EntityStatementLifetimeLookupFunction.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/EntityStatementLifetimeLookupFunction.java
index 5163a85f..fe2b3e57 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/EntityStatementLifetimeLookupFunction.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/oidfed/profile/navigate/EntityStatementLifetimeLookupFunction.java
@@ -23,10 +23,10 @@ import org.opensaml.profile.context.ProfileRequestContext;
 import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfiguration;
+import net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfigurationProfileConfiguration;
 
 /**
- * A function that returns {@link OIDFederationEntityConfiguration#getEntityStatementLifetime(ProfileRequestContext)}
+ * A function that returns {@link OIDFederationEntityConfigurationProfileConfiguration#getEntityStatementLifetime(ProfileRequestContext)}
  * if such a profile is available from a {@link RelyingPartyContext} obtained via a lookup function, by default a child
  * of the {@link ProfileRequestContext}.
  * 
@@ -40,7 +40,7 @@ public class EntityStatementLifetimeLookupFunction extends AbstractRelyingPartyL
         final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
         if (rpc != null) {
             final ProfileConfiguration pc = rpc.getProfileConfig();
-            if (pc instanceof OIDFederationEntityConfiguration ofec) {
+            if (pc instanceof OIDFederationEntityConfigurationProfileConfiguration ofec) {
                 return ofec.getEntityStatementLifetime(input);
             }
         }
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/metadata-lookup/metadata-lookup-beans.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/metadata-lookup/metadata-lookup-beans.xml
index ac639f57..80935f1b 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/metadata-lookup/metadata-lookup-beans.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/metadata-lookup/metadata-lookup-beans.xml
@@ -126,7 +126,7 @@
     <bean id="SelectAutomaticRegistrationProfileConfiguration"
         class="net.shibboleth.idp.profile.impl.SelectProfileConfiguration" scope="prototype"
         p:relyingPartyContextLookupStrategy-ref="AutomaticRegistrationRelyingPartyCreationStrategy"
-        p:profileId="#{T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationAutomaticRegistrationConfiguration).PROFILE_ID}" />
+        p:profileId="#{T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationAutomaticRegistrationProfileConfiguration).PROFILE_ID}" />
 
     <bean id="SelectTrustChain" class="net.shibboleth.idp.plugin.oidc.op.oidfed.profile.impl.SelectTrustChain"
         scope="prototype">
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/entity-configuration/entity-configuration-beans.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/entity-configuration/entity-configuration-beans.xml
index c6c06ee3..26d260af 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/entity-configuration/entity-configuration-beans.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/entity-configuration/entity-configuration-beans.xml
@@ -8,12 +8,12 @@
     default-init-method="initialize" default-destroy-method="destroy">
 
     <bean id="shibboleth.oidc.profileId" class="java.lang.String"
-        c:_0="#{T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfiguration).PROFILE_ID}" />
+        c:_0="#{T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfigurationProfileConfiguration).PROFILE_ID}" />
 
     <bean id="shibboleth.oidc.loggingId" class="java.lang.String" c:_0="%{idp.service.logging.oidfedconfig:OIDFED.Configuration}" />
 
     <util:constant id="shibboleth.metrics.ProfileCounter"
-        static-field="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationEntityConfiguration.PROFILE_COUNTER" />
+        static-field="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationEntityConfigurationProfileConfiguration.PROFILE_COUNTER" />
 
     <bean id="BuildErrorResponseFromEvent"
         class="net.shibboleth.idp.plugin.oidc.op.profile.impl.BuildJSONErrorResponseFromEvent" scope="prototype"
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/entity-configuration/entity-configuration-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/entity-configuration/entity-configuration-flow.xml
index b89baf62..f5036f68 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/entity-configuration/entity-configuration-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/entity-configuration/entity-configuration-flow.xml
@@ -12,7 +12,7 @@
     <decision-state id="CheckIfValidCachedResponseExists">
         <on-entry>
             <set name="requestScope.storageRecord"
-                value="ResponseCacheStorageService.read(T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfiguration).PROFILE_ID, 'entityStatement')"/>
+                value="ResponseCacheStorageService.read(T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationEntityConfigurationProfileConfiguration).PROFILE_ID, 'entityStatement')"/>
             <set name="requestScope.cachedEntityStatementJwt"
                 value="storageRecord == null ? null : T(com.nimbusds.openid.connect.sdk.federation.entities.EntityStatement).parse(storageRecord.getValue())" />
         </on-entry>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/register/register-beans.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/register/register-beans.xml
index 2b0bac38..0845f640 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/register/register-beans.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/register/register-beans.xml
@@ -11,7 +11,7 @@
     default-init-method="initialize" default-destroy-method="destroy">
     
     <bean id="shibboleth.oidc.profileId" class="java.lang.String"
-        c:_0="#{T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationExplicitRegistrationConfiguration).PROFILE_ID}" />
+        c:_0="#{T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationExplicitRegistrationProfileConfiguration).PROFILE_ID}" />
 
     <bean id="shibboleth.oidc.loggingId" class="java.lang.String"
         c:_0="%{idp.service.logging.oidfeddynreg:OIDFED.Registration}" />
@@ -20,7 +20,7 @@
         class="net.shibboleth.idp.plugin.oidc.op.oidfed.profile.navigate.ExplicitClientRegistrationRequestClientIDLookupFunction" />
 
     <util:constant id="shibboleth.metrics.ProfileCounter"
-        static-field="net.shibboleth.oidc.profile.config.impl.DefaultOIDCDynamicRegistrationConfiguration.PROFILE_COUNTER" />
+        static-field="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationExplicitRegistrationProfileConfiguration.PROFILE_COUNTER" />
 
     <bean id="DecodeMessage" class="org.opensaml.profile.action.impl.DecodeMessage" scope="prototype">
         <constructor-arg>
@@ -102,7 +102,7 @@
     <bean id="SelectExplicitRegistrationProfileConfiguration"
         class="net.shibboleth.idp.profile.impl.SelectProfileConfiguration" scope="prototype"
         p:relyingPartyContextLookupStrategy-ref="ExplicitRegistrationRelyingPartyCreationStrategy"
-        p:profileId="#{T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationExplicitRegistrationConfiguration).PROFILE_ID}" />
+        p:profileId="#{T(net.shibboleth.idp.plugin.oidc.op.oidfed.config.OIDFederationExplicitRegistrationProfileConfiguration).PROFILE_ID}" />
 
     <bean id="InitializeRegistrationMetadataPolicyContext"
         class="net.shibboleth.idp.plugin.oidc.op.profile.impl.InitializeRegistrationMetadataPolicyContext"
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
index c467e4d3..0eefd026 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
@@ -103,24 +103,24 @@
         p:requestUriLifetime="%{idp.oauth2.par.requestUriLifetime:PT1M}"
         p:strictScopeValidation="true"/>
 
-    <bean id="OIDFED.Configuration" parent="AbstractOIDCProfile" lazy-init="true"
-        class="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationEntityConfiguration"
-        p:issuer-ref="shibboleth.oidc.issuer"
-        p:authorityHints="%{idp.oidfed.entity.authorityHints:https://example.org}"
-        p:securityConfiguration-ref="shibboleth.oidc.federation.DefaultSecurityConfiguration" />
-
     <bean id="DefaultLogoutHintMatchingPredicate"
           class="net.shibboleth.idp.plugin.oidc.op.profile.logic.DefaultLogoutHintMatchingPredicate"/>
 
-    <bean id="OIDFED.AutomaticRegistration" parent="AbstractOIDCProfile" lazy-init="true"
-        class="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationAutomaticRegistrationConfiguration"
-        p:mandatoryTrustMarks="%{idp.oidfed.automaticRegistration.mandatoryTrustMarks:}"
+    <bean id="AbstractOIDFederationProfile" abstract="true"
         p:securityConfiguration-ref="shibboleth.oidc.federation.DefaultSecurityConfiguration" />
 
-    <bean id="OIDFED.ExplicitRegistration" parent="AbstractOIDCProfile" lazy-init="true"
-        class="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationExplicitRegistrationConfiguration"
-        p:mandatoryTrustMarks="%{idp.oidfed.explicitRegistration.mandatoryTrustMarks:}"
-        p:securityConfiguration-ref="shibboleth.oidc.federation.DefaultSecurityConfiguration" />
+    <bean id="OIDFED.Configuration" parent="AbstractOIDCProfile" lazy-init="true"
+        class="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationEntityConfigurationProfileConfiguration"
+        p:issuer-ref="shibboleth.oidc.issuer"
+        p:authorityHints="%{idp.oidfed.entity.authorityHints:https://example.org}" />
+
+    <bean id="OIDFED.AutomaticRegistration" parent="AbstractOIDFederationProfile" lazy-init="true"
+        class="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationAutomaticRegistrationProfileConfiguration"
+        p:mandatoryTrustMarks="%{idp.oidfed.automaticRegistration.mandatoryTrustMarks:}" />
+
+    <bean id="OIDFED.ExplicitRegistration" parent="AbstractOIDFederationProfile" lazy-init="true"
+        class="net.shibboleth.idp.plugin.oidc.op.oidfed.config.DefaultOIDFederationExplicitRegistrationProfileConfiguration"
+        p:mandatoryTrustMarks="%{idp.oidfed.explicitRegistration.mandatoryTrustMarks:}" />
 
     <!-- Metadata-driven variants. -->
     
diff --git a/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/FederationConfigurationFlowTest.java b/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/EntityConfigurationFlowTest.java
similarity index 96%
rename from idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/FederationConfigurationFlowTest.java
rename to idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/EntityConfigurationFlowTest.java
index 58be9d19..664a565e 100644
--- a/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/FederationConfigurationFlowTest.java
+++ b/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/EntityConfigurationFlowTest.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.idp.plugin.oidc.op.profile.flow;
+package net.shibboleth.idp.plugin.oidc.op.profile.flow.oidfed;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -34,11 +34,11 @@ import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
 /**
  * Unit test for the entity configuration flow.
  */
-public class FederationConfigurationFlowTest extends AbstractOidcFlowTest {
+public class EntityConfigurationFlowTest extends AbstractFederationFlowTest {
 
     public static final String FLOW_ID = "oidfed/entity-configuration";
 
-    protected FederationConfigurationFlowTest() {
+    protected EntityConfigurationFlowTest() {
         super(FLOW_ID);
     }
 

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


More information about the commits mailing list