[java-identity-provider] branch main updated: Migrate ProfileConfiguration hierarchy out of IdP.

Scott Cantor cantor.2 at osu.edu
Thu Feb 9 20:00:15 UTC 2023


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

scantor pushed a commit to branch main
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=d9237ed57b700db3506c3ea051909612972c279a

The following commit(s) were added to refs/heads/main by this push:
     new d9237ed57 Migrate ProfileConfiguration hierarchy out of IdP.
d9237ed57 is described below

commit d9237ed57b700db3506c3ea051909612972c279a
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Feb 9 15:00:11 2023 -0500

    Migrate ProfileConfiguration hierarchy out of IdP.
---
 .../idp/admin/AdministrativeFlowDescriptor.java    |   2 +-
 .../admin/BasicAdministrativeFlowDescriptor.java   |   5 +-
 .../config/AuthenticationProfileConfiguration.java |   2 +-
 .../AuthenticationFlowsLookupFunction.java         |   2 +-
 .../navigate/ForceAuthnProfileConfigPredicate.java |   2 +-
 .../PostAuthenticationFlowsLookupFunction.java     |   2 +-
 .../principal/ProxyAuthenticationPrincipal.java    |   2 +-
 .../impl/InitializeRequestedPrincipalContext.java  |   2 +-
 .../InitializeRequestedPrincipalContextTest.java   |   2 +-
 .../cas/config/AbstractProtocolConfiguration.java  |   6 +-
 .../idp/cas/flow/impl/TestContextBuilder.java      |   3 +-
 .../shibboleth/idp/conf/relying-party-mddriven.xml |   2 +-
 idp-parent/pom.xml                                 |  14 ++-
 idp-profile-api/pom.xml                            |   4 +
 .../AbstractConditionalProfileConfiguration.java   |  68 -------------
 ...tractInterceptorAwareProfileConfiguration.java} | 113 ++-------------------
 .../AttributeResolvingProfileConfiguration.java    |  40 --------
 .../config/ConditionalProfileConfiguration.java    |  40 --------
 ...a => InterceptorAwareProfileConfiguration.java} |  46 ++-------
 .../OverriddenIssuerProfileConfiguration.java      |  42 --------
 .../config/logic/ResolveAttributesPredicate.java   |   4 +-
 ...ntTLSValidationConfigurationLookupFunction.java |   2 +-
 .../DecryptionConfigurationLookupFunction.java     |   2 +-
 .../EncryptionConfigurationLookupFunction.java     |   2 +-
 ...IdentifierGenerationStrategyLookupFunction.java |   2 +-
 .../navigate/InboundFlowsLookupFunction.java       |  11 +-
 .../navigate/OutboundFlowsLookupFunction.java      |  11 +-
 ...ignatureSigningConfigurationLookupFunction.java |   2 +-
 ...atureValidationConfigurationLookupFunction.java |   2 +-
 ...pClientSecurityConfigurationLookupFunction.java |   2 +-
 ...ignatureSigningConfigurationLookupFunction.java |   2 +-
 ...atureValidationConfigurationLookupFunction.java |   2 +-
 .../idp/profile/context/RelyingPartyContext.java   |   2 +-
 .../navigate/ResponderIdLookupFunction.java        |   4 +-
 .../relyingparty/RelyingPartyConfiguration.java    |   2 +-
 .../profile/impl/SelectProfileConfiguration.java   |   4 +-
 .../messaging/impl/SelectProfileConfiguration.java |   2 +-
 .../tests/AbstractProfileConfigurationTest.java    |   2 +-
 .../impl/SelectProfileConfigurationTest.java       |   2 +-
 .../impl/RelyingPartyConfigurationTest.java        |   8 +-
 .../config/AbstractSAMLProfileConfiguration.java   |   6 +-
 .../profile/config/SAMLProfileConfiguration.java   |   4 +-
 .../logic/IncludeAttributeStatementPredicate.java  |   2 +-
 .../logic/NotBeforeProfileConfigPredicate.java     |   2 +-
 .../config/logic/SignAssertionsPredicate.java      |   2 +-
 .../config/logic/SignRequestsPredicate.java        |   2 +-
 .../config/logic/SignResponsesPredicate.java       |   2 +-
 .../ClientTLSArtifactRequestsPredicate.java        |   2 +-
 .../ClientTLSSOAPLogoutRequestsPredicate.java      |   2 +-
 .../messaging/SignArtifactRequestsPredicate.java   |   2 +-
 .../messaging/SignSOAPLogoutRequestsPredicate.java |   2 +-
 ...itionalAudiencesForAssertionLookupFunction.java |   2 +-
 .../navigate/AssertionLifetimeLookupFunction.java  |   2 +-
 .../AudienceRestrictionsLookupFunction.java        |   2 +-
 .../QualifiedNameIDFormatsLookupFunction.java      |   2 +-
 .../navigate/SessionLifetimeLookupFunction.java    |   2 +-
 .../logic/DefaultNameIdentifierFormatStrategy.java |   2 +-
 .../config/BrowserSSOProfileConfiguration.java     |  10 +-
 .../config/BrowserSSOProfileConfiguration.java     |   2 +-
 .../profile/config/ECPProfileConfiguration.java    |   2 +-
 .../config/logic/CheckAddressPredicate.java        |   2 +-
 .../logic/IgnoreRequestSignaturesPredicate.java    |   2 +-
 .../logic/IgnoreScopingProfileConfigPredicate.java |   2 +-
 .../profile/config/logic/SOAPErrorPredicate.java   |   2 +-
 .../SuppressAuthenticatingAuthorityPredicate.java  |   2 +-
 .../MaximumTimeSinceAuthnLookupFunction.java       |   2 +-
 .../config/navigate/ProxyCountLookupFunction.java  |   2 +-
 .../navigate/ProxyRestrictionLookupFunction.java   |   2 +-
 .../PopulateBindingAndEndpointContextsTest.java    |   2 +-
 .../DefaultNameIdentifierFormatStrategyTest.java   |  11 +-
 .../impl/PopulateEncryptionParametersTest.java     |   4 +-
 .../profile/impl/ProcessLogoutRequestTest.java     |   4 +-
 .../MockAuthenticationProfileConfiguration.java    |   4 +-
 .../profile/testing/MockProfileConfiguration.java  |   6 +-
 .../idp/profile/testing/RequestContextBuilder.java |   2 +-
 .../profile/testing/SAML1ActionTestingSupport.java |   2 +-
 .../profile/testing/SAML2ActionTestingSupport.java |   2 +-
 77 files changed, 137 insertions(+), 439 deletions(-)

diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/admin/AdministrativeFlowDescriptor.java b/idp-admin-api/src/main/java/net/shibboleth/idp/admin/AdministrativeFlowDescriptor.java
index e964efe1b..eea928dcc 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/admin/AdministrativeFlowDescriptor.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/admin/AdministrativeFlowDescriptor.java
@@ -24,7 +24,7 @@ import org.opensaml.saml.ext.saml2mdui.UIInfo;
 
 import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
 import net.shibboleth.idp.profile.FlowDescriptor;
-import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
+import net.shibboleth.profile.config.AttributeResolvingProfileConfiguration;
 
 /**
  * A descriptor for an administrative flow.
diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/admin/BasicAdministrativeFlowDescriptor.java b/idp-admin-api/src/main/java/net/shibboleth/idp/admin/BasicAdministrativeFlowDescriptor.java
index 0f82efd4a..ad0a4b3f5 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/admin/BasicAdministrativeFlowDescriptor.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/admin/BasicAdministrativeFlowDescriptor.java
@@ -20,7 +20,6 @@ package net.shibboleth.idp.admin;
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 import java.util.function.Function;
@@ -44,7 +43,7 @@ import com.google.common.base.MoreObjects;
 import com.google.common.base.Predicates;
 
 import net.shibboleth.idp.authn.principal.PrincipalServiceManager;
-import net.shibboleth.idp.profile.config.AbstractProfileConfiguration;
+import net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration;
 import net.shibboleth.shared.annotation.ParameterName;
 import net.shibboleth.shared.annotation.constraint.NonNegative;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
@@ -70,7 +69,7 @@ import net.shibboleth.shared.primitive.StringSupport;
  * 
  * @since 3.3.0
  */
-public class BasicAdministrativeFlowDescriptor extends AbstractProfileConfiguration
+public class BasicAdministrativeFlowDescriptor extends AbstractInterceptorAwareProfileConfiguration
         implements AdministrativeFlowDescriptor {
     
     /** Logging ID. */
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/AuthenticationProfileConfiguration.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/AuthenticationProfileConfiguration.java
index e4eebb895..c4c52a754 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/AuthenticationProfileConfiguration.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/AuthenticationProfileConfiguration.java
@@ -26,7 +26,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonNegative;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/AuthenticationFlowsLookupFunction.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/AuthenticationFlowsLookupFunction.java
index 3829a6bf5..d9aca52ff 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/AuthenticationFlowsLookupFunction.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/AuthenticationFlowsLookupFunction.java
@@ -23,9 +23,9 @@ import java.util.Collections;
 import javax.annotation.Nullable;
 
 import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/ForceAuthnProfileConfigPredicate.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/ForceAuthnProfileConfigPredicate.java
index 42bef0869..fbebd5e1f 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/ForceAuthnProfileConfigPredicate.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/ForceAuthnProfileConfigPredicate.java
@@ -20,9 +20,9 @@ package net.shibboleth.idp.authn.config.navigate;
 import javax.annotation.Nullable;
 
 import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
+import net.shibboleth.profile.config.ProfileConfiguration;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/PostAuthenticationFlowsLookupFunction.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/PostAuthenticationFlowsLookupFunction.java
index f9d97d7c6..601c3f303 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/PostAuthenticationFlowsLookupFunction.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/config/navigate/PostAuthenticationFlowsLookupFunction.java
@@ -23,9 +23,9 @@ import java.util.Collections;
 import javax.annotation.Nullable;
 
 import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/ProxyAuthenticationPrincipal.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/ProxyAuthenticationPrincipal.java
index 485aedf81..af491e876 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/ProxyAuthenticationPrincipal.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/ProxyAuthenticationPrincipal.java
@@ -32,8 +32,8 @@ import javax.annotation.Nullable;
 import org.opensaml.profile.context.ProfileRequestContext;
 
 import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NonNegative;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContext.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContext.java
index d83928bec..96d0c8ead 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContext.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContext.java
@@ -34,8 +34,8 @@ import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
 import net.shibboleth.idp.authn.context.AuthenticationContext;
 import net.shibboleth.idp.authn.context.RequestedPrincipalContext;
 import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
 
diff --git a/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContextTest.java b/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContextTest.java
index b99f8e5aa..a30d0650c 100644
--- a/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContextTest.java
+++ b/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContextTest.java
@@ -28,7 +28,7 @@ import net.shibboleth.idp.profile.IdPEventIds;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/AbstractProtocolConfiguration.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/AbstractProtocolConfiguration.java
index 4ac12f6c2..d83dc2c92 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/AbstractProtocolConfiguration.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/AbstractProtocolConfiguration.java
@@ -29,8 +29,8 @@ import org.opensaml.security.config.BasicSecurityConfiguration;
 import org.opensaml.security.config.SecurityConfiguration;
 
 import net.shibboleth.idp.cas.ticket.TicketIdentifierGenerationStrategy;
-import net.shibboleth.idp.profile.config.AbstractConditionalProfileConfiguration;
-import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
+import net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration;
+import net.shibboleth.profile.config.AttributeResolvingProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.component.InitializableComponent;
 import net.shibboleth.shared.logic.Constraint;
@@ -42,7 +42,7 @@ import net.shibboleth.shared.logic.PredicateSupport;
  * 
  * @author Marvin S. Addison
  */
-public abstract class AbstractProtocolConfiguration extends AbstractConditionalProfileConfiguration implements
+public abstract class AbstractProtocolConfiguration extends AbstractInterceptorAwareProfileConfiguration implements
         AttributeResolvingProfileConfiguration, InitializableComponent {
 
     /** CAS base protocol URI. */
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/TestContextBuilder.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/TestContextBuilder.java
index c4c5729b0..ab2c89a7a 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/TestContextBuilder.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/TestContextBuilder.java
@@ -25,10 +25,11 @@ import net.shibboleth.idp.cas.service.Service;
 import net.shibboleth.idp.cas.service.ServiceContext;
 import net.shibboleth.idp.cas.ticket.Ticket;
 import net.shibboleth.idp.cas.ticket.TicketContext;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.session.IdPSession;
 import net.shibboleth.idp.session.context.SessionContext;
+import net.shibboleth.profile.config.ProfileConfiguration;
+
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.springframework.mock.web.MockHttpServletRequest;
 import org.springframework.mock.web.MockHttpServletResponse;
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/relying-party-mddriven.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/relying-party-mddriven.xml
index 9eab59f6b..3f25e5305 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/relying-party-mddriven.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/relying-party-mddriven.xml
@@ -120,7 +120,7 @@
             <bean parent="shibboleth.MDDrivenIntProperty" p:propertyName="disallowedFeatures">
                 <property name="defaultValue">
                     <util:constant
-                        static-field="net.shibboleth.idp.profile.config.AbstractProfileConfiguration.DEFAULT_DISALLOWED_FEATURES" />
+                        static-field="net.shibboleth.profile.config.AbstractProfileConfiguration.DEFAULT_DISALLOWED_FEATURES" />
                 </property>
             </bean>
         </property>
diff --git a/idp-parent/pom.xml b/idp-parent/pom.xml
index c8822d488..87397b13d 100644
--- a/idp-parent/pom.xml
+++ b/idp-parent/pom.xml
@@ -62,6 +62,7 @@
     <properties>
         <opensaml.groupId>org.opensaml</opensaml.groupId>
         <opensaml.version>5.0.0-SNAPSHOT</opensaml.version>
+        <shib-profile.version>5.0.0-SNAPSHOT</shib-profile.version>
         <shib-attribute.version>5.0.0-SNAPSHOT</shib-attribute.version>
         <shib-metadata.version>5.0.0-SNAPSHOT</shib-metadata.version>
         <shib-shared.groupId>net.shibboleth</shib-shared.groupId>
@@ -112,11 +113,11 @@
         used by all project modules. -->
     <dependencyManagement>
         <dependencies>
-            <!-- Import Dependencies:  Shib-Metadata/Attribute -->
+            <!-- Import Dependencies:  Shib-Metadata/Attribute/Profile -->
             <dependency>
                 <groupId>net.shibboleth</groupId>
-                <artifactId>shib-metadata-bom</artifactId>
-                <version>${shib-metadata.version}</version>
+                <artifactId>shib-profile-bom</artifactId>
+                <version>${shib-profile.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
@@ -127,6 +128,13 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <dependency>
+                <groupId>net.shibboleth</groupId>
+                <artifactId>shib-metadata-bom</artifactId>
+                <version>${shib-metadata.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
 
             <!-- Import Dependencies:  OpenSAML -->
             <dependency>
diff --git a/idp-profile-api/pom.xml b/idp-profile-api/pom.xml
index eae5648f9..46fd9c61c 100644
--- a/idp-profile-api/pom.xml
+++ b/idp-profile-api/pom.xml
@@ -22,6 +22,10 @@
 
     <dependencies>
         <!-- Compile Dependencies -->
+        <dependency>
+            <groupId>net.shibboleth</groupId>
+            <artifactId>shib-profile-api</artifactId>
+        </dependency>
         <dependency>
             <groupId>net.shibboleth</groupId>
             <artifactId>shib-attribute-api</artifactId>
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractConditionalProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractConditionalProfileConfiguration.java
deleted file mode 100644
index 068b9bed4..000000000
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractConditionalProfileConfiguration.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.idp.profile.config;
-
-import java.util.function.Predicate;
-
-import javax.annotation.Nonnull;
-
-import net.shibboleth.shared.annotation.ParameterName;
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.logic.PredicateSupport;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-
-/**
- * Base class for {@link ConditionalProfileConfiguration} implementations.
- *
- * @since 3.4.0
- */
-public abstract class AbstractConditionalProfileConfiguration extends AbstractProfileConfiguration
-        implements ConditionalProfileConfiguration {
-
-    /** Activation condition. */
-    @Nonnull private Predicate<ProfileRequestContext> activationCondition;
-
-    /**
-     * Constructor.
-     * 
-     * @param id ID of the communication profile, never null or empty
-     */
-    public AbstractConditionalProfileConfiguration(@Nonnull @NotEmpty @ParameterName(name="id") final String id) {
-        super(id);
-        
-        activationCondition = PredicateSupport.alwaysTrue();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    @Nonnull public Predicate<ProfileRequestContext> getActivationCondition() {
-        return activationCondition;
-    }
-
-    /**
-     * Set an activation condition to control this profile.
-     *
-     * @param condition condition to apply
-     */
-    public void setActivationCondition(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        activationCondition = Constraint.isNotNull(condition, "Activation condition cannot be null");
-    }
-    
-}
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractInterceptorAwareProfileConfiguration.java
similarity index 55%
rename from idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractProfileConfiguration.java
rename to idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractInterceptorAwareProfileConfiguration.java
index 8a0c00f22..14b7c723c 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractProfileConfiguration.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractInterceptorAwareProfileConfiguration.java
@@ -19,83 +19,48 @@ package net.shibboleth.idp.profile.config;
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Objects;
 import java.util.function.Function;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import net.shibboleth.profile.config.AbstractConditionalProfileConfiguration;
 import net.shibboleth.shared.annotation.ParameterName;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 import net.shibboleth.shared.collection.CollectionSupport;
-import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.logic.FunctionSupport;
 import net.shibboleth.shared.primitive.StringSupport;
 
 import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.security.config.SecurityConfiguration;
 
-/** Base class for {@link ProfileConfiguration} implementations. */
-public abstract class AbstractProfileConfiguration extends AbstractIdentifiableInitializableComponent
-        implements ProfileConfiguration {
+/**
+ * Base class for {@link InterceptorAwareProfileConfiguration} implementations.
+ * 
+ * @since 5.0.0
+ */
+public abstract class AbstractInterceptorAwareProfileConfiguration extends AbstractConditionalProfileConfiguration
+        implements InterceptorAwareProfileConfiguration {
     
-    /** Default value for disallowedFeatures property. */
-    @Nonnull public static final Integer DEFAULT_DISALLOWED_FEATURES = 0; 
-
     /** Lookup function to supply inboundFlows property. */
     @Nonnull private Function<ProfileRequestContext,List<String>> inboundFlowsLookupStrategy;
 
     /** Lookup function to supply #outboundFlows property. */
     @Nonnull private Function<ProfileRequestContext,List<String>> outboundFlowsLookupStrategy;
 
-    /** Lookup function to supply securityConfiguration property. */
-    @Nonnull private Function<ProfileRequestContext,SecurityConfiguration> securityConfigurationLookupStrategy;
-
-    /** Lookup function to return a bitmask of request features to disallow. */
-    @Nonnull private Function<ProfileRequestContext,Integer> disallowedFeaturesLookupStrategy;
 
     /**
      * Constructor.
      * 
      * @param id ID of the communication profile, never null or empty
      */
-    public AbstractProfileConfiguration(@Nonnull @NotEmpty @ParameterName(name="id") final String id) {
-        setId(id);
-        securityConfigurationLookupStrategy = FunctionSupport.constant(null);
+    public AbstractInterceptorAwareProfileConfiguration(@Nonnull @NotEmpty @ParameterName(name="id") final String id) {
+        super(id);
         inboundFlowsLookupStrategy = FunctionSupport.constant(null);
         outboundFlowsLookupStrategy = FunctionSupport.constant(null);
-        disallowedFeaturesLookupStrategy = FunctionSupport.constant(DEFAULT_DISALLOWED_FEATURES);
-    }
-
-    /** {@inheritDoc} */
-    @Nullable public SecurityConfiguration getSecurityConfiguration(
-            @Nullable final ProfileRequestContext profileRequestContext) {
-        return securityConfigurationLookupStrategy.apply(profileRequestContext);
-    }
-
-    /**
-     * Sets the security configuration for this profile.
-     * 
-     * @param configuration security configuration for this profile
-     */
-    public void setSecurityConfiguration(@Nullable final SecurityConfiguration configuration) {
-        securityConfigurationLookupStrategy = FunctionSupport.constant(configuration);
-    }
-
-    /**
-     * Set a lookup strategy for the security configuration.
-     *
-     * @param strategy  lookup strategy
-     * 
-     * @since 3.3.0
-     */
-    public void setSecurityConfigurationLookupStrategy(
-            @Nonnull final Function<ProfileRequestContext,SecurityConfiguration> strategy) {
-        securityConfigurationLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
     }
 
     /** {@inheritDoc} */
@@ -169,63 +134,5 @@ public abstract class AbstractProfileConfiguration extends AbstractIdentifiableI
             @Nonnull final Function<ProfileRequestContext,List<String>> strategy) {
         outboundFlowsLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
     }
-
-    /** {@inheritDoc} */
-    public boolean isFeatureDisallowed(@Nullable final ProfileRequestContext profileRequestContext, final int feature) {
-        return (getDisallowedFeatures(profileRequestContext) & feature) == feature;
-    }
-    
-    /** {@inheritDoc} */
-    public int getDisallowedFeatures(@Nullable final ProfileRequestContext profileRequestContext) {
-        final Integer mask = disallowedFeaturesLookupStrategy.apply(profileRequestContext); 
-        return mask != null ? mask : DEFAULT_DISALLOWED_FEATURES;
-    }
-    
-    /**
-     * Set a bitmask of disallowed features to block.
-     * 
-     * @param mask a bitmask of features to block
-     * 
-     * @since 3.3.0
-     */
-    public void setDisallowedFeatures(final int mask) {
-        disallowedFeaturesLookupStrategy = FunctionSupport.constant(mask);
-    }
-    
-    /**
-     * Set a lookup strategy for the bitmask of disallowed features to block. 
-     * 
-     * @param strategy lookup strategy
-     * 
-     * @since 3.3.0
-     */
-    public void setDisallowedFeaturesLookupStrategy(@Nonnull final Function<ProfileRequestContext,Integer> strategy) {
-        disallowedFeaturesLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
-    }
-    
-    /** {@inheritDoc} */
-    @Override
-    public int hashCode() {
-        return getId().hashCode();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean equals(final Object obj) {
-        if (this == obj) {
-            return true;
-        }
-
-        if (obj == null) {
-            return false;
-        }
-
-        if (!(obj instanceof AbstractProfileConfiguration)) {
-            return false;
-        }
-
-        final AbstractProfileConfiguration other = (AbstractProfileConfiguration) obj;
-        return Objects.equals(getId(), other.getId());
-    }
     
 }
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AttributeResolvingProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AttributeResolvingProfileConfiguration.java
deleted file mode 100644
index 267d66cd4..000000000
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AttributeResolvingProfileConfiguration.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.idp.profile.config;
-
-import javax.annotation.Nullable;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-
-/**
- * {@link ProfileConfiguration} with optional resolution of attributes.
- *
- * @since 4.2.0
- */
-public interface AttributeResolvingProfileConfiguration extends ProfileConfiguration {
-
-    /**
-     * Get whether to resolve attributes.
-     * 
-     * @param profileRequestContext current profile request context
-     * 
-     * @return true iff resolution should be done
-     */
-    boolean isResolveAttributes(@Nullable final ProfileRequestContext profileRequestContext);
-    
-}
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/ConditionalProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/ConditionalProfileConfiguration.java
deleted file mode 100644
index dff195c87..000000000
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/ConditionalProfileConfiguration.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.idp.profile.config;
-
-import java.util.function.Predicate;
-
-import javax.annotation.Nonnull;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-
-/**
- * A {@link ProfileConfiguration} supporting an activation condition.
- * 
- * @since 3.4.0
- */
-public interface ConditionalProfileConfiguration extends ProfileConfiguration {
-
-    /**
-     * Get the condition controlling enablement of this profile.
-     * 
-     * @return condition controlling enablement of this profile
-     */
-    @Nonnull Predicate<ProfileRequestContext> getActivationCondition();
-    
-}
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/ProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/InterceptorAwareProfileConfiguration.java
similarity index 63%
rename from idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/ProfileConfiguration.java
rename to idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/InterceptorAwareProfileConfiguration.java
index 9412193e6..b484d1cfb 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/ProfileConfiguration.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/InterceptorAwareProfileConfiguration.java
@@ -23,15 +23,18 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.security.config.SecurityConfiguration;
 
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
-import net.shibboleth.shared.component.IdentifiedComponent;
 
-/** Represents the configuration of a particular communication profile. */
-public interface ProfileConfiguration extends IdentifiedComponent {
+/**
+ * Extension of {@link ProfileConfiguration} that adds inteceptor support.
+ * 
+ * @since 5.0.0
+ */
+public interface InterceptorAwareProfileConfiguration extends ProfileConfiguration {
 
     /**
      * Get an ordered list of interceptor flows to run for this profile after an inbound message is
@@ -63,39 +66,4 @@ public interface ProfileConfiguration extends IdentifiedComponent {
     @Nonnull @NonnullElements @NotLive @Unmodifiable List<String> getOutboundInterceptorFlows(
             @Nullable final ProfileRequestContext profileRequestContext);
     
-    /**
-     * Get the {@link SecurityConfiguration} to use with this profile.
-     * 
-     * @param profileRequestContext current profile request context
-     * 
-     * @return security configuration to use with this profile
-     */
-    @Nullable SecurityConfiguration getSecurityConfiguration(
-            @Nullable final ProfileRequestContext profileRequestContext);
-    
-    /**
-     * Get a bitmask of disallowed features to block.
-     * 
-     * <p>Individual profiles define their own feature constants.</p>
-     * 
-     * @param profileRequestContext current profile request context
-     * 
-     * @return bitmask of features to block
-     * 
-     * @since 5.0.0
-     */
-    public int getDisallowedFeatures(@Nullable final ProfileRequestContext profileRequestContext);
-
-    /**
-     * Return true iff the input feature constant is disallowed.
-     * 
-     * @param profileRequestContext current profile request context
-     * @param feature a bit constant
-     * 
-     * @return true iff the input feature constant is disallowed
-     * 
-     * @since 5.0.0
-     */
-    public boolean isFeatureDisallowed(@Nullable final ProfileRequestContext profileRequestContext, final int feature);
-
 }
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/OverriddenIssuerProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/OverriddenIssuerProfileConfiguration.java
deleted file mode 100644
index f33b55df6..000000000
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/OverriddenIssuerProfileConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.idp.profile.config;
-
-import javax.annotation.Nullable;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
-
-/**
- * {@link ProfileConfiguration} with optional override of issuer setting.
- *
- * @since 3.0.0
- */
-public interface OverriddenIssuerProfileConfiguration extends ProfileConfiguration {
-
-    /**
-     * Get overridden issuer value.
-     * 
-     * @param profileRequestContext current profile request context
-     * 
-     * @return issuer or null to use usual default
-     */
-    @Nullable @NotEmpty String getIssuer(@Nullable final ProfileRequestContext profileRequestContext);
-    
-}
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/logic/ResolveAttributesPredicate.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/logic/ResolveAttributesPredicate.java
index 1ce488de7..6dcb172ec 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/logic/ResolveAttributesPredicate.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/logic/ResolveAttributesPredicate.java
@@ -19,10 +19,10 @@ package net.shibboleth.idp.profile.config.logic;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
+import net.shibboleth.profile.config.AttributeResolvingProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/ClientTLSValidationConfigurationLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/ClientTLSValidationConfigurationLookupFunction.java
index 36f27a241..73b6cb4c2 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/ClientTLSValidationConfigurationLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/ClientTLSValidationConfigurationLookupFunction.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/DecryptionConfigurationLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/DecryptionConfigurationLookupFunction.java
index b34dde3fd..549a3516b 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/DecryptionConfigurationLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/DecryptionConfigurationLookupFunction.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/EncryptionConfigurationLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/EncryptionConfigurationLookupFunction.java
index 8939e2d2f..ea120e6a2 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/EncryptionConfigurationLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/EncryptionConfigurationLookupFunction.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/IdentifierGenerationStrategyLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/IdentifierGenerationStrategyLookupFunction.java
index 9374a2d56..35610eba2 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/IdentifierGenerationStrategyLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/IdentifierGenerationStrategyLookupFunction.java
@@ -19,7 +19,7 @@ package net.shibboleth.idp.profile.config.navigate;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/InboundFlowsLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/InboundFlowsLookupFunction.java
index 99e7bc801..de0a17b4a 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/InboundFlowsLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/InboundFlowsLookupFunction.java
@@ -22,7 +22,8 @@ import java.util.Collections;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
+import net.shibboleth.idp.profile.config.InterceptorAwareProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
@@ -32,8 +33,8 @@ import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 import org.opensaml.profile.context.ProfileRequestContext;
 
 /**
- * A function that returns {@link ProfileConfiguration#getInboundInterceptorFlows}() if such a profile is
- * available from a {@link RelyingPartyContext} obtained via a lookup function, by default a child of the
+ * A function that returns {@link InterceptorAwareProfileConfiguration#getInboundInterceptorFlows}() 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, no values are returned.</p>
@@ -47,8 +48,8 @@ public class InboundFlowsLookupFunction extends AbstractRelyingPartyLookupFuncti
         final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
         if (rpc != null) {
             final ProfileConfiguration pc = rpc.getProfileConfig();
-            if (pc != null) {
-                return pc.getInboundInterceptorFlows(input);
+            if (pc instanceof InterceptorAwareProfileConfiguration) {
+                return ((InterceptorAwareProfileConfiguration) pc).getInboundInterceptorFlows(input);
             }
         }
         
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/OutboundFlowsLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/OutboundFlowsLookupFunction.java
index ff77b408a..4506e5cc8 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/OutboundFlowsLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/OutboundFlowsLookupFunction.java
@@ -22,7 +22,8 @@ import java.util.Collections;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
+import net.shibboleth.idp.profile.config.InterceptorAwareProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
@@ -32,8 +33,8 @@ import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 import org.opensaml.profile.context.ProfileRequestContext;
 
 /**
- * A function that returns {@link ProfileConfiguration#getOutboundInterceptorFlows}() if such a profile is
- * available from a {@link RelyingPartyContext} obtained via a lookup function, by default a child of the
+ * A function that returns {@link InterceptorAwareProfileConfiguration#getOutboundInterceptorFlows}() 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, no values are returned.</p>
@@ -47,8 +48,8 @@ public class OutboundFlowsLookupFunction extends AbstractRelyingPartyLookupFunct
         final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
         if (rpc != null) {
             final ProfileConfiguration pc = rpc.getProfileConfig();
-            if (pc != null) {
-                return pc.getOutboundInterceptorFlows(input);
+            if (pc instanceof InterceptorAwareProfileConfiguration) {
+                return ((InterceptorAwareProfileConfiguration) pc).getOutboundInterceptorFlows(input);
             }
         }
         
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/SignatureSigningConfigurationLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/SignatureSigningConfigurationLookupFunction.java
index 663075f1b..f230ec673 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/SignatureSigningConfigurationLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/SignatureSigningConfigurationLookupFunction.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/SignatureValidationConfigurationLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/SignatureValidationConfigurationLookupFunction.java
index 2e6a58add..f39d83ade 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/SignatureValidationConfigurationLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/SignatureValidationConfigurationLookupFunction.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/HttpClientSecurityConfigurationLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/HttpClientSecurityConfigurationLookupFunction.java
index af7d47632..29410f0df 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/HttpClientSecurityConfigurationLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/HttpClientSecurityConfigurationLookupFunction.java
@@ -27,7 +27,7 @@ import org.opensaml.security.config.SecurityConfiguration;
 import org.opensaml.security.httpclient.HttpClientSecurityConfiguration;
 import org.opensaml.security.httpclient.HttpClientSecuritySupport;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.messaging.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/SignatureSigningConfigurationLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/SignatureSigningConfigurationLookupFunction.java
index 2f3c2b296..0a836b281 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/SignatureSigningConfigurationLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/SignatureSigningConfigurationLookupFunction.java
@@ -28,7 +28,7 @@ import org.opensaml.xmlsec.SecurityConfigurationSupport;
 import org.opensaml.xmlsec.SignatureSigningConfiguration;
 import org.opensaml.xmlsec.config.XMLSecurityConfiguration;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.messaging.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/SignatureValidationConfigurationLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/SignatureValidationConfigurationLookupFunction.java
index 957c3bd45..ced6eb5ea 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/SignatureValidationConfigurationLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/messaging/SignatureValidationConfigurationLookupFunction.java
@@ -28,7 +28,7 @@ import org.opensaml.xmlsec.SecurityConfigurationSupport;
 import org.opensaml.xmlsec.SignatureValidationConfiguration;
 import org.opensaml.xmlsec.config.XMLSecurityConfiguration;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.messaging.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/RelyingPartyContext.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/RelyingPartyContext.java
index 441401008..1b7a0c8bd 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/RelyingPartyContext.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/RelyingPartyContext.java
@@ -22,7 +22,7 @@ import java.util.function.Function;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.StringSupport;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/ResponderIdLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/ResponderIdLookupFunction.java
index c308ea44f..53e1ec203 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/ResponderIdLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/ResponderIdLookupFunction.java
@@ -19,8 +19,8 @@ package net.shibboleth.idp.profile.context.navigate;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.OverriddenIssuerProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
 
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
index 63672d328..e3f2d2b0c 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
@@ -30,7 +30,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectProfileConfiguration.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectProfileConfiguration.java
index d63f8d1da..169c3fbe2 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectProfileConfiguration.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectProfileConfiguration.java
@@ -29,10 +29,10 @@ import org.slf4j.Logger;
 
 import net.shibboleth.idp.profile.AbstractProfileAction;
 import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.config.ConditionalProfileConfiguration;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
+import net.shibboleth.profile.config.ConditionalProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectProfileConfiguration.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectProfileConfiguration.java
index 72479c897..a1519e3ce 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectProfileConfiguration.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectProfileConfiguration.java
@@ -32,7 +32,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
 import org.slf4j.Logger;
 import net.shibboleth.shared.primitive.LoggerFactory;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
diff --git a/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/config/tests/AbstractProfileConfigurationTest.java b/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/config/tests/AbstractProfileConfigurationTest.java
index 9ea832ec2..93a91af79 100644
--- a/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/config/tests/AbstractProfileConfigurationTest.java
+++ b/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/config/tests/AbstractProfileConfigurationTest.java
@@ -17,7 +17,7 @@
 
 package net.shibboleth.idp.profile.config.tests;
 
-import net.shibboleth.idp.profile.config.AbstractProfileConfiguration;
+import net.shibboleth.profile.config.AbstractProfileConfiguration;
 import net.shibboleth.idp.profile.testing.MockProfileConfiguration;
 import net.shibboleth.shared.logic.ConstraintViolationException;
 import net.shibboleth.shared.logic.FunctionSupport;
diff --git a/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/impl/SelectProfileConfigurationTest.java b/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/impl/SelectProfileConfigurationTest.java
index 11a02bd1b..a1407bcab 100644
--- a/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/impl/SelectProfileConfigurationTest.java
+++ b/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/impl/SelectProfileConfigurationTest.java
@@ -23,7 +23,7 @@ import net.shibboleth.idp.profile.IdPEventIds;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
diff --git a/idp-profile-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/RelyingPartyConfigurationTest.java b/idp-profile-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/RelyingPartyConfigurationTest.java
index e4e656d5c..a2754516b 100644
--- a/idp-profile-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/RelyingPartyConfigurationTest.java
+++ b/idp-profile-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/RelyingPartyConfigurationTest.java
@@ -21,13 +21,13 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.google.common.base.Predicates;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.testing.MockProfileConfiguration;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.ConstraintViolationException;
 import net.shibboleth.shared.logic.FunctionSupport;
+import net.shibboleth.shared.logic.PredicateSupport;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.testng.Assert;
@@ -40,7 +40,7 @@ public class RelyingPartyConfigurationTest {
         RelyingPartyConfiguration config = new RelyingPartyConfiguration();
         config.setId("foo");
         config.setResponderId("http://idp.example.org");
-        config.setDetailedErrorsPredicate(Predicates.<ProfileRequestContext>alwaysTrue());
+        config.setDetailedErrorsPredicate(PredicateSupport.alwaysTrue());
         config.initialize();
         Assert.assertEquals(config.getId(), "foo");
         Assert.assertEquals(config.getResponderId(null), "http://idp.example.org");
@@ -50,7 +50,7 @@ public class RelyingPartyConfigurationTest {
         config = new RelyingPartyConfiguration();
         config.setId("foo");
         config.setResponderId("http://idp.example.org");
-        config.setDetailedErrorsPredicate(Predicates.<ProfileRequestContext>alwaysFalse());
+        config.setDetailedErrorsPredicate(PredicateSupport.alwaysFalse());
         config.initialize();
         Assert.assertEquals(config.getId(), "foo");
         Assert.assertEquals(config.getResponderId(null), "http://idp.example.org");
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractSAMLProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractSAMLProfileConfiguration.java
index 9b2753b8a..7bde0fdde 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractSAMLProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractSAMLProfileConfiguration.java
@@ -26,7 +26,7 @@ import java.util.function.Predicate;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.AbstractConditionalProfileConfiguration;
+import net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NotLive;
@@ -39,7 +39,7 @@ import net.shibboleth.shared.primitive.StringSupport;
 import org.opensaml.profile.context.ProfileRequestContext;
 
 /** Base class for SAML profile configurations. */
-public abstract class AbstractSAMLProfileConfiguration extends AbstractConditionalProfileConfiguration implements
+public abstract class AbstractSAMLProfileConfiguration extends AbstractInterceptorAwareProfileConfiguration implements
         SAMLProfileConfiguration {
     
     /** Default assertion lifetime. */
@@ -217,7 +217,7 @@ public abstract class AbstractSAMLProfileConfiguration extends AbstractCondition
         
         final Set<String> audiences = assertionAudiencesLookupStrategy.apply(profileRequestContext);
         if (audiences != null) {
-            return Set.copyOf(audiences);
+            return CollectionSupport.copyToSet(audiences);
         }
         return CollectionSupport.emptySet();
     }
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/SAMLProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/SAMLProfileConfiguration.java
index 58da1e4a0..edc37c16d 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/SAMLProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/SAMLProfileConfiguration.java
@@ -25,13 +25,13 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.idp.profile.config.InterceptorAwareProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 
 /** Common interface for SAML profile configurations. */
-public interface SAMLProfileConfiguration extends ProfileConfiguration {
+public interface SAMLProfileConfiguration extends InterceptorAwareProfileConfiguration {
 
     /**
      * Get the predicate used to determine if generated assertions should be signed.
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/IncludeAttributeStatementPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/IncludeAttributeStatementPredicate.java
index 0f2f50ff7..774e07fac 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/IncludeAttributeStatementPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/IncludeAttributeStatementPredicate.java
@@ -22,7 +22,7 @@ import java.util.function.Function;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.shared.logic.Constraint;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/NotBeforeProfileConfigPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/NotBeforeProfileConfigPredicate.java
index d48dd79ab..1d0da3165 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/NotBeforeProfileConfigPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/NotBeforeProfileConfigPredicate.java
@@ -19,7 +19,7 @@ package net.shibboleth.idp.saml.profile.config.logic;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignAssertionsPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignAssertionsPredicate.java
index 5ffa63c50..895e8b8b3 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignAssertionsPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignAssertionsPredicate.java
@@ -27,7 +27,7 @@ import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
 import org.opensaml.saml.saml2.metadata.RoleDescriptor;
 import org.opensaml.saml.saml2.metadata.SPSSODescriptor;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignRequestsPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignRequestsPredicate.java
index 7b48b03bc..856210b31 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignRequestsPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignRequestsPredicate.java
@@ -22,7 +22,7 @@ import java.util.function.Function;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignResponsesPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignResponsesPredicate.java
index a9c3da0cb..1634a1793 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignResponsesPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignResponsesPredicate.java
@@ -19,7 +19,7 @@ package net.shibboleth.idp.saml.profile.config.logic;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSArtifactRequestsPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSArtifactRequestsPredicate.java
index 529b0430d..ce5492211 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSArtifactRequestsPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSArtifactRequestsPredicate.java
@@ -21,7 +21,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.MessageContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.messaging.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.profile.config.SAMLArtifactConsumerProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSSOAPLogoutRequestsPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSSOAPLogoutRequestsPredicate.java
index 37cf348a1..af2eafd03 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSSOAPLogoutRequestsPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSSOAPLogoutRequestsPredicate.java
@@ -21,7 +21,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.MessageContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.messaging.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.saml2.profile.config.SingleLogoutProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignArtifactRequestsPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignArtifactRequestsPredicate.java
index 64be5578b..a7362ea9d 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignArtifactRequestsPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignArtifactRequestsPredicate.java
@@ -21,7 +21,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.MessageContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.messaging.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.profile.config.SAMLArtifactConsumerProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignSOAPLogoutRequestsPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignSOAPLogoutRequestsPredicate.java
index 8b9cafcf0..85e184898 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignSOAPLogoutRequestsPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignSOAPLogoutRequestsPredicate.java
@@ -21,7 +21,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.MessageContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.messaging.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.saml2.profile.config.SingleLogoutProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AdditionalAudiencesForAssertionLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AdditionalAudiencesForAssertionLookupFunction.java
index b1efd7933..56dd1ca04 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AdditionalAudiencesForAssertionLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AdditionalAudiencesForAssertionLookupFunction.java
@@ -23,7 +23,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AssertionLifetimeLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AssertionLifetimeLookupFunction.java
index 80f8322b6..cd295bc1a 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AssertionLifetimeLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AssertionLifetimeLookupFunction.java
@@ -21,7 +21,7 @@ import java.time.Duration;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AudienceRestrictionsLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AudienceRestrictionsLookupFunction.java
index 66923b51b..550ff5176 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AudienceRestrictionsLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/AudienceRestrictionsLookupFunction.java
@@ -23,7 +23,7 @@ import java.util.Set;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/QualifiedNameIDFormatsLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/QualifiedNameIDFormatsLookupFunction.java
index e96e5b8b0..d0ff807c6 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/QualifiedNameIDFormatsLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/QualifiedNameIDFormatsLookupFunction.java
@@ -22,7 +22,7 @@ import java.util.Collections;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.saml.saml2.profile.config.SingleLogoutProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/SessionLifetimeLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/SessionLifetimeLookupFunction.java
index 7bf41081a..1b2e6e6a0 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/SessionLifetimeLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/navigate/SessionLifetimeLookupFunction.java
@@ -21,7 +21,7 @@ import java.time.Duration;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/DefaultNameIdentifierFormatStrategy.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/DefaultNameIdentifierFormatStrategy.java
index ad63f3831..318602aea 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/DefaultNameIdentifierFormatStrategy.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/DefaultNameIdentifierFormatStrategy.java
@@ -25,7 +25,7 @@ import java.util.function.Function;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/BrowserSSOProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/BrowserSSOProfileConfiguration.java
index eb73f56b1..84261ac82 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/BrowserSSOProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/BrowserSSOProfileConfiguration.java
@@ -30,8 +30,8 @@ import javax.annotation.Nullable;
 import org.opensaml.profile.context.ProfileRequestContext;
 
 import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
 import net.shibboleth.idp.saml.authn.principal.AuthenticationMethodPrincipal;
+import net.shibboleth.profile.config.AttributeResolvingProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonNegative;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
@@ -183,7 +183,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
         final Collection<AuthenticationMethodPrincipal> methods =
                 defaultAuthenticationMethodsLookupStrategy.apply(profileRequestContext);
         if (methods != null) {
-            return List.copyOf(methods);
+            return CollectionSupport.copyToList(methods);
         }
         return CollectionSupport.emptyList();
     }
@@ -221,7 +221,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
         
         final Set<String> flows = authenticationFlowsLookupStrategy.apply(profileRequestContext);
         if (flows != null) {
-            return Set.copyOf(flows);
+            return CollectionSupport.copyToSet(flows);
         }
         return CollectionSupport.emptySet();
     }
@@ -257,7 +257,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
             @Nullable final ProfileRequestContext profileRequestContext) {
         final Collection<String> flows = postAuthenticationFlowsLookupStrategy.apply(profileRequestContext);
         if (flows != null) {
-            return List.copyOf(flows);
+            return CollectionSupport.copyToList(flows);
         }
         return CollectionSupport.emptyList();
     }
@@ -299,7 +299,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
             @Nullable final ProfileRequestContext profileRequestContext) {
         final Collection<String> formats = nameIDFormatPrecedenceLookupStrategy.apply(profileRequestContext);
         if (formats != null) {
-            return List.copyOf(formats);
+            return CollectionSupport.copyToList(formats);
         }
         return CollectionSupport.emptyList();
     }
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
index 3f3a11310..01912a710 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
@@ -29,11 +29,11 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
 import net.shibboleth.idp.saml.authn.principal.AuthnContextClassRefPrincipal;
 import net.shibboleth.idp.saml.profile.config.logic.ProxyAwareForceAuthnPredicate;
 import net.shibboleth.idp.saml.saml2.profile.config.navigate.ProxyAwareAuthnContextComparisonLookupFunction;
 import net.shibboleth.idp.saml.saml2.profile.config.navigate.ProxyAwareDefaultAuthenticationMethodsLookupFunction;
+import net.shibboleth.profile.config.AttributeResolvingProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonNegative;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/ECPProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/ECPProfileConfiguration.java
index a04b048ae..b09bec8a0 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/ECPProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/ECPProfileConfiguration.java
@@ -76,7 +76,7 @@ public class ECPProfileConfiguration extends BrowserSSOProfileConfiguration {
         
         final Set<String> events = localEventsLookupStrategy.apply(profileRequestContext);
         if (events != null) {
-            return Set.copyOf(events);
+            return CollectionSupport.copyToSet(events);
         }
         return CollectionSupport.emptySet();
     }
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/CheckAddressPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/CheckAddressPredicate.java
index e52345e46..8752239cb 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/CheckAddressPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/CheckAddressPredicate.java
@@ -19,7 +19,7 @@ package net.shibboleth.idp.saml.saml2.profile.config.logic;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/IgnoreRequestSignaturesPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/IgnoreRequestSignaturesPredicate.java
index 22e4841f2..9e5a0ca67 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/IgnoreRequestSignaturesPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/IgnoreRequestSignaturesPredicate.java
@@ -22,7 +22,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.saml2.profile.config.SAML2ProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/IgnoreScopingProfileConfigPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/IgnoreScopingProfileConfigPredicate.java
index f90a00bd2..0b3f01e8f 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/IgnoreScopingProfileConfigPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/IgnoreScopingProfileConfigPredicate.java
@@ -19,7 +19,7 @@ package net.shibboleth.idp.saml.saml2.profile.config.logic;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/SOAPErrorPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/SOAPErrorPredicate.java
index 5f3293a95..0c2a41c70 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/SOAPErrorPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/SOAPErrorPredicate.java
@@ -26,7 +26,7 @@ import org.opensaml.profile.context.EventContext;
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.profile.context.navigate.CurrentOrPreviousEventLookup;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.saml2.profile.config.ECPProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/SuppressAuthenticatingAuthorityPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/SuppressAuthenticatingAuthorityPredicate.java
index cdb1d7673..f6ccbaaca 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/SuppressAuthenticatingAuthorityPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/logic/SuppressAuthenticatingAuthorityPredicate.java
@@ -19,7 +19,7 @@ package net.shibboleth.idp.saml.saml2.profile.config.logic;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
 import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/MaximumTimeSinceAuthnLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/MaximumTimeSinceAuthnLookupFunction.java
index f20679166..970824a54 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/MaximumTimeSinceAuthnLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/MaximumTimeSinceAuthnLookupFunction.java
@@ -23,7 +23,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/ProxyCountLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/ProxyCountLookupFunction.java
index 7ee817284..68db578d3 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/ProxyCountLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/ProxyCountLookupFunction.java
@@ -19,7 +19,7 @@ package net.shibboleth.idp.saml.saml2.profile.config.navigate;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.saml.saml2.profile.config.SAML2ProfileConfiguration;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/ProxyRestrictionLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/ProxyRestrictionLookupFunction.java
index 92bfee697..bf69ad219 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/ProxyRestrictionLookupFunction.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/ProxyRestrictionLookupFunction.java
@@ -27,7 +27,7 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.idp.authn.context.SubjectContext;
 import net.shibboleth.idp.authn.principal.ProxyAuthenticationPrincipal;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.saml.saml2.profile.config.SAML2ProfileConfiguration;
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContextsTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContextsTest.java
index 6739c9b83..65d979cfd 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContextsTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContextsTest.java
@@ -28,7 +28,7 @@ import java.util.List;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/logic/tests/DefaultNameIdentifierFormatStrategyTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/logic/tests/DefaultNameIdentifierFormatStrategyTest.java
index 40bb56d8d..e69baa76a 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/logic/tests/DefaultNameIdentifierFormatStrategyTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/logic/tests/DefaultNameIdentifierFormatStrategyTest.java
@@ -18,13 +18,12 @@
 package net.shibboleth.idp.saml.profile.logic.tests;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.testing.RequestContextBuilder;
 import net.shibboleth.idp.saml.profile.logic.DefaultNameIdentifierFormatStrategy;
 import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
@@ -63,7 +62,7 @@ public class DefaultNameIdentifierFormatStrategyTest extends OpenSAMLInitBaseTes
         
         profileConfig = new BrowserSSOProfileConfiguration();
         prc = new RequestContextBuilder().setRelyingPartyProfileConfigurations(
-                Collections.<ProfileConfiguration>singletonList(profileConfig)).buildProfileRequestContext();
+                CollectionSupport.singletonList(profileConfig)).buildProfileRequestContext();
         prc.setProfileId(BrowserSSOProfileConfiguration.PROFILE_ID);
         
         final EntityDescriptor entity = edBuilder.buildObject();
@@ -81,13 +80,13 @@ public class DefaultNameIdentifierFormatStrategyTest extends OpenSAMLInitBaseTes
     public void testNoConfiguration() {
         final ProfileRequestContext context = new ProfileRequestContext();
         final List<String> formats = strategy.apply(context);
-        Assert.assertEquals(formats, Collections.singletonList(NameID.UNSPECIFIED));
+        Assert.assertEquals(formats, CollectionSupport.singletonList(NameID.UNSPECIFIED));
     }
 
     @Test
     public void testNoFormats() {
         final List<String> formats = strategy.apply(prc);
-        Assert.assertEquals(formats, Collections.singletonList(NameID.UNSPECIFIED));
+        Assert.assertEquals(formats, CollectionSupport.singletonList(NameID.UNSPECIFIED));
     }
     
     @Test
@@ -146,7 +145,7 @@ public class DefaultNameIdentifierFormatStrategyTest extends OpenSAMLInitBaseTes
         role.getNameIDFormats().add(format);
 
         final List<String> formats = strategy.apply(prc);
-        Assert.assertEquals(formats, Collections.singletonList(NameID.TRANSIENT));
+        Assert.assertEquals(formats, CollectionSupport.singletonList(NameID.TRANSIENT));
     }
 
     @Test
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParametersTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParametersTest.java
index d096048fd..d87f84c2d 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParametersTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParametersTest.java
@@ -20,12 +20,12 @@ package net.shibboleth.idp.saml.saml2.profile.impl;
 import java.util.Collections;
 
 import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
 import net.shibboleth.idp.profile.testing.RequestContextBuilder;
 import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.resolver.CriteriaSet;
@@ -55,7 +55,7 @@ public class PopulateEncryptionParametersTest extends OpenSAMLInitBaseTestCase {
     
     @BeforeMethod public void setUp() throws ComponentInitializationException {
         rc = new RequestContextBuilder().setRelyingPartyProfileConfigurations(
-                Collections.<ProfileConfiguration>singletonList(new BrowserSSOProfileConfiguration())).buildRequestContext();
+                CollectionSupport.singletonList(new BrowserSSOProfileConfiguration())).buildRequestContext();
         prc = new WebflowRequestContextProfileRequestContextLookup().apply(rc);
         
         action = new PopulateEncryptionParameters();
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequestTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequestTest.java
index bd3f038d6..ba8f6c473 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequestTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequestTest.java
@@ -27,7 +27,6 @@ import java.util.Map;
 import jakarta.servlet.http.Cookie;
 
 import net.shibboleth.idp.authn.context.SubjectContext;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
 import net.shibboleth.idp.profile.testing.RequestContextBuilder;
@@ -44,6 +43,7 @@ import net.shibboleth.idp.session.SessionException;
 import net.shibboleth.idp.session.context.LogoutContext;
 import net.shibboleth.idp.session.context.SessionContext;
 import net.shibboleth.idp.session.criterion.HttpServletRequestCriterion;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.ResolverException;
@@ -86,7 +86,7 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
         final SingleLogoutProfileConfiguration logoutConfig = new SingleLogoutProfileConfiguration();
         logoutConfig.setQualifiedNameIDFormats(Collections.singletonList(NameID.UNSPECIFIED));
         src = new RequestContextBuilder().setRelyingPartyProfileConfigurations(
-                Collections.<ProfileConfiguration>singletonList(logoutConfig)).buildRequestContext();
+                CollectionSupport.singletonList(logoutConfig)).buildRequestContext();
         
         prc = new WebflowRequestContextProfileRequestContextLookup().apply(src);
         
diff --git a/idp-testing/src/main/java/net/shibboleth/idp/authn/testing/MockAuthenticationProfileConfiguration.java b/idp-testing/src/main/java/net/shibboleth/idp/authn/testing/MockAuthenticationProfileConfiguration.java
index 45cad6595..5b8d0bcd5 100644
--- a/idp-testing/src/main/java/net/shibboleth/idp/authn/testing/MockAuthenticationProfileConfiguration.java
+++ b/idp-testing/src/main/java/net/shibboleth/idp/authn/testing/MockAuthenticationProfileConfiguration.java
@@ -33,7 +33,7 @@ import org.opensaml.xmlsec.config.BasicXMLSecurityConfiguration;
 import com.google.common.base.Predicates;
 
 import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.AbstractProfileConfiguration;
+import net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonNegative;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
@@ -43,7 +43,7 @@ import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.StringSupport;
 
 /** Mock implementation of {@link AuthenticationProfileConfiguration}. */
-public class MockAuthenticationProfileConfiguration extends AbstractProfileConfiguration
+public class MockAuthenticationProfileConfiguration extends AbstractInterceptorAwareProfileConfiguration
         implements AuthenticationProfileConfiguration {
 
     /** Selects, and limits, the authentication methods to use for requests. */
diff --git a/idp-testing/src/main/java/net/shibboleth/idp/profile/testing/MockProfileConfiguration.java b/idp-testing/src/main/java/net/shibboleth/idp/profile/testing/MockProfileConfiguration.java
index 001ff6049..ee49cc597 100644
--- a/idp-testing/src/main/java/net/shibboleth/idp/profile/testing/MockProfileConfiguration.java
+++ b/idp-testing/src/main/java/net/shibboleth/idp/profile/testing/MockProfileConfiguration.java
@@ -21,12 +21,12 @@ import javax.annotation.Nonnull;
 
 import org.opensaml.security.config.BasicSecurityConfiguration;
 
-import net.shibboleth.idp.profile.config.AbstractProfileConfiguration;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /** Mock implementation of {@link ProfileConfiguration}. */
-public class MockProfileConfiguration extends AbstractProfileConfiguration {
+public class MockProfileConfiguration extends AbstractInterceptorAwareProfileConfiguration {
 
     /**
      * Constructor.
diff --git a/idp-testing/src/main/java/net/shibboleth/idp/profile/testing/RequestContextBuilder.java b/idp-testing/src/main/java/net/shibboleth/idp/profile/testing/RequestContextBuilder.java
index 5cb5c5a62..dee81c50f 100644
--- a/idp-testing/src/main/java/net/shibboleth/idp/profile/testing/RequestContextBuilder.java
+++ b/idp-testing/src/main/java/net/shibboleth/idp/profile/testing/RequestContextBuilder.java
@@ -32,7 +32,7 @@ import jakarta.servlet.ServletContext;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
 import net.shibboleth.shared.component.ComponentInitializationException;
diff --git a/idp-testing/src/main/java/net/shibboleth/idp/saml/saml1/profile/testing/SAML1ActionTestingSupport.java b/idp-testing/src/main/java/net/shibboleth/idp/saml/saml1/profile/testing/SAML1ActionTestingSupport.java
index 9aad4259d..3dbd799e6 100644
--- a/idp-testing/src/main/java/net/shibboleth/idp/saml/saml1/profile/testing/SAML1ActionTestingSupport.java
+++ b/idp-testing/src/main/java/net/shibboleth/idp/saml/saml1/profile/testing/SAML1ActionTestingSupport.java
@@ -23,7 +23,7 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
diff --git a/idp-testing/src/main/java/net/shibboleth/idp/saml/saml2/profile/testing/SAML2ActionTestingSupport.java b/idp-testing/src/main/java/net/shibboleth/idp/saml/saml2/profile/testing/SAML2ActionTestingSupport.java
index ec75986aa..e88991903 100644
--- a/idp-testing/src/main/java/net/shibboleth/idp/saml/saml2/profile/testing/SAML2ActionTestingSupport.java
+++ b/idp-testing/src/main/java/net/shibboleth/idp/saml/saml2/profile/testing/SAML2ActionTestingSupport.java
@@ -23,7 +23,7 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
 import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;

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


More information about the commits mailing list