[java-identity-provider] branch main updated: JSPROF-1 - Move RelyingParty "layer" into java-shib-profile
Scott Cantor
cantor.2 at osu.edu
Wed Feb 15 20:31:51 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=dd09f7204da688a716fadc97b646e27ada4f15f4
The following commit(s) were added to refs/heads/main by this push:
new dd09f7204 JSPROF-1 - Move RelyingParty "layer" into java-shib-profile
dd09f7204 is described below
commit dd09f7204da688a716fadc97b646e27ada4f15f4
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Feb 15 15:31:48 2023 -0500
JSPROF-1 - Move RelyingParty "layer" into java-shib-profile
https://shibboleth.atlassian.net/browse/JSPROF-1
Move some SAML classes out and delete some unused clases.
---
.../impl/BuildSAMLMetadataContextActionTest.java | 3 +-
.../net/shibboleth/idp/conf/audit-system.xml | 6 +-
.../net/shibboleth/idp/conf/functions.xml | 2 +-
.../shibboleth/idp/conf/saml-binding-config.xml | 2 +-
.../net/shibboleth/idp/conf/soap-client.xml | 4 +-
.../idp/flows/admin/resolvertest-beans.xml | 4 +-
.../idp/flows/authn/saml-authn-beans.xml | 2 +-
.../idp/flows/cas/cas-abstract-beans.xml | 2 +-
.../flows/saml/logout/saml2-logoutprop-beans.xml | 2 +-
.../idp/flows/saml/saml-abstract-beans.xml | 2 +-
.../idp/flows/saml/saml1/sso-abstract-beans.xml | 2 +-
.../idp/flows/saml/saml2/sso-abstract-beans.xml | 2 +-
.../audit/impl/AttributesAuditExtractor.java | 100 -------
idp-saml-api/pom.xml | 5 +
.../idp/saml/authn/context/SAMLContext.java | 56 ----
.../idp/saml/authn/context/package-info.java | 24 --
.../idp/saml/binding/BindingDescriptor.java | 51 ----
.../shibboleth/idp/saml/binding/package-info.java | 22 --
.../SAMLArtifactConsumerProfileConfiguration.java | 48 ----
.../profile/config/SAMLProfileConfiguration.java | 23 +-
.../logic/AllowedSAMLPresentersPredicate.java | 4 +-
.../LegacyEncryptionRequirementPredicate.java | 87 ------
.../logic/LegacySigningRequirementPredicate.java | 87 ------
.../config/logic/SignAssertionsPredicate.java | 2 +-
.../config/logic/SignRequestsPredicate.java | 108 --------
.../config/logic/SignResponsesPredicate.java | 46 ----
.../ClientTLSArtifactRequestsPredicate.java | 46 ----
.../messaging/SignArtifactRequestsPredicate.java | 46 ----
.../DefaultNameIdentifierFormatStrategy.java | 2 +-
.../SAMLMetadataContextLookupFunction.java | 51 ----
.../logic/MappedEntityAttributesPredicate.java | 302 ---------------------
.../idp/saml/profile/logic/package-info.java | 22 --
.../idp/saml/saml1/profile/package-info.java | 20 --
...ractSAML2ArtifactAwareProfileConfiguration.java | 2 +-
idp-saml-impl/pom.xml | 4 +
.../impl/SpringAwareMessageEncoderFactory.java | 2 +-
.../impl/RelyingPartyConfigurationSupport.java | 4 +-
.../profile/impl/ValidateSAMLAuthentication.java | 2 +-
.../DefaultNameIdentifierFormatStrategyTest.java | 4 +-
...itializeOutboundMessageContextForErrorTest.java | 2 +-
.../logic/tests/EntityAttributesPredicateTest.java | 181 ------------
.../profile/logic/attribute-mapping-metadata.xml | 63 -----
.../profile/logic/attribute-registry-service.xml | 41 ---
.../idp/saml/profile/logic/attribute-registry.xml | 28 --
.../idp/saml/profile/logic/rules/subjectid.txt | 3 -
.../idp/saml/profile/logic/rules/zorkmids.txt | 4 -
.../shibboleth/idp/ui/impl/SetRPUIInformation.java | 2 +-
idp-war/pom.xml | 4 +
48 files changed, 47 insertions(+), 1484 deletions(-)
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/BuildSAMLMetadataContextActionTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/BuildSAMLMetadataContextActionTest.java
index 7e8831309..5ff5f06ff 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/BuildSAMLMetadataContextActionTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/BuildSAMLMetadataContextActionTest.java
@@ -22,7 +22,8 @@ import java.util.function.Function;
import net.shibboleth.idp.cas.config.LoginConfiguration;
import net.shibboleth.idp.cas.service.Service;
-import net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
+import net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
+
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
import org.opensaml.saml.metadata.EntityGroupName;
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/audit-system.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/audit-system.xml
index d4e0f1744..3089e9b12 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/audit-system.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/audit-system.xml
@@ -921,7 +921,7 @@
<key>
<util:constant static-field="net.shibboleth.idp.profile.IdPAuditFields.ATTRIBUTES"/>
</key>
- <bean class="net.shibboleth.idp.profile.audit.impl.AttributesAuditExtractor">
+ <bean class="net.shibboleth.profile.audit.impl.AttributesAuditExtractor">
<property name="activationCondition">
<bean parent="shibboleth.Conditions.OR">
<constructor-arg>
@@ -1054,7 +1054,7 @@
<key>
<util:constant static-field="net.shibboleth.idp.profile.IdPAuditFields.ATTRIBUTES"/>
</key>
- <bean class="net.shibboleth.idp.profile.audit.impl.AttributesAuditExtractor" />
+ <bean class="net.shibboleth.profile.audit.impl.AttributesAuditExtractor" />
</entry>
<entry>
<key>
@@ -1557,7 +1557,7 @@
<key>
<util:constant static-field="net.shibboleth.idp.profile.IdPAuditFields.ATTRIBUTES"/>
</key>
- <bean class="net.shibboleth.idp.profile.audit.impl.AttributesAuditExtractor" />
+ <bean class="net.shibboleth.profile.audit.impl.AttributesAuditExtractor" />
</entry>
</map>
</property>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/functions.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/functions.xml
index 152bef735..4a9586e87 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/functions.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/functions.xml
@@ -50,7 +50,7 @@
<bean class="org.opensaml.saml.common.messaging.context.navigate.EntityDescriptorLookupFunction" />
</constructor-arg>
<constructor-arg name="f">
- <bean class="net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction" />
+ <bean class="net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction" />
</constructor-arg>
</bean>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/saml-binding-config.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/saml-binding-config.xml
index 32a6d253a..2c5305dbc 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/saml-binding-config.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/saml-binding-config.xml
@@ -23,7 +23,7 @@
duplicate bean IDs.
-->
- <bean id="shibboleth.BindingDescriptor" class="net.shibboleth.idp.saml.binding.BindingDescriptor" abstract="true" />
+ <bean id="shibboleth.BindingDescriptor" class="net.shibboleth.saml.binding.BindingDescriptor" abstract="true" />
<!-- SAML 1 Bindings -->
<bean parent="shibboleth.BindingDescriptor" id="shibboleth.Binding.LegacyShibboleth"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/soap-client.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/soap-client.xml
index 8cf32aac0..e840c4163 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/soap-client.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/soap-client.xml
@@ -196,7 +196,7 @@
<constructor-arg>
<map>
<entry key="SAML2.ArtifactDecoder">
- <bean class="net.shibboleth.idp.saml.profile.config.logic.messaging.ClientTLSArtifactRequestsPredicate" />
+ <bean class="net.shibboleth.saml.profile.config.logic.messaging.ClientTLSArtifactRequestsPredicate" />
</entry>
<entry key="SAML2.Logout">
<bean class="net.shibboleth.idp.saml.profile.config.logic.messaging.ClientTLSSOAPLogoutRequestsPredicate" />
@@ -210,7 +210,7 @@
<constructor-arg>
<map>
<entry key="SAML2.ArtifactDecoder">
- <bean class="net.shibboleth.idp.saml.profile.config.logic.messaging.SignArtifactRequestsPredicate" />
+ <bean class="net.shibboleth.saml.profile.config.logic.messaging.SignArtifactRequestsPredicate" />
</entry>
<entry key="SAML2.Logout">
<bean class="net.shibboleth.idp.saml.profile.config.logic.messaging.SignSOAPLogoutRequestsPredicate" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/resolvertest-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/resolvertest-beans.xml
index ce7f208a8..dc77a025b 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/resolvertest-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/resolvertest-beans.xml
@@ -141,7 +141,7 @@
<bean id="AddNameIdentifierToSubjects"
class="org.opensaml.saml.saml1.profile.impl.AddNameIdentifierToSubjects" scope="prototype">
<property name="formatLookupStrategy">
- <bean class="net.shibboleth.idp.saml.profile.logic.DefaultNameIdentifierFormatStrategy"
+ <bean class="net.shibboleth.idp.saml.profile.context.navigate.DefaultNameIdentifierFormatStrategy"
p:defaultFormat="%{idp.nameid.saml1.default:urn:mace:shibboleth:1.0:nameIdentifier}">
<property name="profileId">
<util:constant static-field="net.shibboleth.idp.saml.saml1.profile.config.BrowserSSOProfileConfiguration.PROFILE_ID" />
@@ -166,7 +166,7 @@
<bean id="AddNameIDToSubjects"
class="org.opensaml.saml.saml2.profile.impl.AddNameIDToSubjects" scope="prototype">
<property name="formatLookupStrategy">
- <bean class="net.shibboleth.idp.saml.profile.logic.DefaultNameIdentifierFormatStrategy"
+ <bean class="net.shibboleth.idp.saml.profile.context.navigate.DefaultNameIdentifierFormatStrategy"
p:defaultFormat="%{idp.nameid.saml2.default:urn:oasis:names:tc:SAML:2.0:nameid-format:transient}">
<property name="profileId">
<util:constant static-field="net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration.PROFILE_ID" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/saml-authn-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/saml-authn-beans.xml
index 5a653fe9c..10e071749 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/saml-authn-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/saml-authn-beans.xml
@@ -143,7 +143,7 @@
p:signatureSigningParametersResolver-ref="shibboleth.SignatureSigningParametersResolver"
p:noResultIsError="false">
<property name="activationCondition">
- <bean class="net.shibboleth.idp.saml.profile.config.logic.SignRequestsPredicate"
+ <bean class="net.shibboleth.saml.profile.config.logic.SignRequestsPredicate"
p:honorMetadata="%{idp.saml.honorWantAuthnRequestsSigned:true}" />
</property>
</bean>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/cas-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/cas-abstract-beans.xml
index 86fc5727f..000ab9101 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/cas-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/cas-abstract-beans.xml
@@ -81,7 +81,7 @@
p:maskFailures="%{idp.service.attribute.filter.maskFailures:true}"
p:metadataResolver-ref="shibboleth.MetadataResolver">
<property name="metadataContextLookupStrategy">
- <bean class="net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction" />
+ <bean class="net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction" />
</property>
</bean>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/logout/saml2-logoutprop-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/logout/saml2-logoutprop-beans.xml
index 564a25277..150274607 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/logout/saml2-logoutprop-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/logout/saml2-logoutprop-beans.xml
@@ -130,7 +130,7 @@
p:signatureSigningParametersResolver-ref="shibboleth.SignatureSigningParametersResolver"
p:noResultIsError="true">
<property name="activationCondition">
- <bean class="net.shibboleth.idp.saml.profile.config.logic.SignRequestsPredicate" />
+ <bean class="net.shibboleth.saml.profile.config.logic.SignRequestsPredicate" />
</property>
</bean>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml-abstract-beans.xml
index d57a27d1e..3d5b0b575 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml-abstract-beans.xml
@@ -134,7 +134,7 @@
p:signatureSigningParametersResolver-ref="shibboleth.SignatureSigningParametersResolver"
p:noResultIsError="true">
<property name="activationCondition">
- <bean class="net.shibboleth.idp.saml.profile.config.logic.SignResponsesPredicate" />
+ <bean class="net.shibboleth.saml.profile.config.logic.SignResponsesPredicate" />
</property>
</bean>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml
index d069fe460..4f06929a8 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml
@@ -36,7 +36,7 @@
<bean id="AddNameIdentifierToSubjects"
class="org.opensaml.saml.saml1.profile.impl.AddNameIdentifierToSubjects" scope="prototype">
<property name="formatLookupStrategy">
- <bean class="net.shibboleth.idp.saml.profile.logic.DefaultNameIdentifierFormatStrategy"
+ <bean class="net.shibboleth.idp.saml.profile.context.navigate.DefaultNameIdentifierFormatStrategy"
p:defaultFormat="%{idp.nameid.saml1.default:urn:mace:shibboleth:1.0:nameIdentifier}" />
</property>
<property name="nameIdentifierGenerator">
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-abstract-beans.xml
index bc0c94716..f96d7bde3 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-abstract-beans.xml
@@ -64,7 +64,7 @@
<bean id="AddNameIDToSubjects"
class="org.opensaml.saml.saml2.profile.impl.AddNameIDToSubjects" scope="prototype">
<property name="formatLookupStrategy">
- <bean class="net.shibboleth.idp.saml.profile.logic.DefaultNameIdentifierFormatStrategy"
+ <bean class="net.shibboleth.idp.saml.profile.context.navigate.DefaultNameIdentifierFormatStrategy"
p:defaultFormat="%{idp.nameid.saml2.default:urn:oasis:names:tc:SAML:2.0:nameid-format:transient}" />
</property>
<property name="nameIDGenerator">
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/AttributesAuditExtractor.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/AttributesAuditExtractor.java
deleted file mode 100644
index 7f9d671dd..000000000
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/AttributesAuditExtractor.java
+++ /dev/null
@@ -1,100 +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.audit.impl;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.function.Function;
-import java.util.function.Predicate;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.context.ProfileRequestContext;
-
-import net.shibboleth.idp.attribute.context.AttributeContext;
-import net.shibboleth.profile.context.RelyingPartyContext;
-import net.shibboleth.shared.logic.Constraint;
-
-/** {@link Function} that returns the attribute IDs from an {@link AttributeContext}. */
-public class AttributesAuditExtractor implements Function<ProfileRequestContext,Collection<String>> {
-
- /** Extract the unfiltered attribute list instead of the filtered list. */
- private boolean useUnfiltered;
-
- /** A predicate to control whether attributes should be extracted for logging. */
- @Nullable private Predicate<ProfileRequestContext> activationCondition;
-
- /** Lookup strategy for AttributeContext to read from. */
- @Nonnull private final Function<ProfileRequestContext,AttributeContext> attributeContextLookupStrategy;
-
- /** Constructor. */
- public AttributesAuditExtractor() {
- // Defaults to ProfileRequestContext -> RelyingPartyContext -> AttributeContext.
- attributeContextLookupStrategy = new ChildContextLookup<>(AttributeContext.class).compose(
- new ChildContextLookup<>(RelyingPartyContext.class));
- }
-
- /**
- * Constructor.
- *
- * @param strategy lookup strategy for {@link AttributeContext}
- */
- public AttributesAuditExtractor(@Nonnull final Function<ProfileRequestContext,AttributeContext> strategy) {
- attributeContextLookupStrategy = Constraint.isNotNull(strategy,
- "AttributeContext lookup strategy cannot be null");
- }
-
- /**
- * Set whether to extract the list of unfiltered attributes instead of the filtered attributes.
- *
- * @param flag flag to set
- */
- public void setUseUnfiltered(final boolean flag) {
- useUnfiltered = flag;
- }
-
- /**
- * Set a condition to evaluate to control whether attributes are extracted for logging.
- *
- * <p>This is used primarily to prevent logging of attributes for profiles in which attributes
- * may be resolved, but not actually disclosed to a relying party.</p>
- *
- * @param condition condition to evaluate
- */
- public void setActivationCondition(@Nullable final Predicate<ProfileRequestContext> condition) {
- activationCondition = condition;
- }
-
- /** {@inheritDoc} */
- @Nullable public Collection<String> apply(@Nullable final ProfileRequestContext input) {
-
- if (activationCondition != null && !activationCondition.test(input)) {
- return Collections.emptyList();
- }
-
- final AttributeContext attributeCtx = attributeContextLookupStrategy.apply(input);
- if (attributeCtx != null) {
- return (useUnfiltered ? attributeCtx.getUnfilteredIdPAttributes()
- : attributeCtx.getIdPAttributes()).keySet();
- }
- return Collections.emptyList();
- }
-
-}
\ No newline at end of file
diff --git a/idp-saml-api/pom.xml b/idp-saml-api/pom.xml
index 5da8e4666..c072348c8 100644
--- a/idp-saml-api/pom.xml
+++ b/idp-saml-api/pom.xml
@@ -38,6 +38,11 @@
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>net.shibboleth</groupId>
+ <artifactId>shib-saml-profile-api</artifactId>
+ </dependency>
+
<dependency>
<groupId>net.shibboleth</groupId>
<artifactId>shib-attribute-api</artifactId>
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/authn/context/SAMLContext.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/authn/context/SAMLContext.java
deleted file mode 100644
index 31c03d898..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/authn/context/SAMLContext.java
+++ /dev/null
@@ -1,56 +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.saml.authn.context;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.opensaml.messaging.context.BaseContext;
-import org.opensaml.saml.saml2.core.Assertion;
-
-/**
- * Context, usually attached to {@link net.shibboleth.idp.authn.context.AuthenticationContext},
- * that carries a SAML {@link Assertion} to be validated.
- */
-public final class SAMLContext extends BaseContext {
-
- /** The assertion to be validated. */
- @Nullable private Assertion assertion;
-
- /**
- * Gets the assertion to be validated.
- *
- * @return the assertion to be validated
- */
- @Nullable public Assertion getAssertion() {
- return assertion;
- }
-
- /**
- * Sets the assertion to be validated.
- *
- * @param newAssertion assertion to be validated
- *
- * @return this context
- */
- @Nonnull public SAMLContext setAssertion(@Nullable final Assertion newAssertion) {
- assertion = newAssertion;
- return this;
- }
-
-}
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/authn/context/package-info.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/authn/context/package-info.java
deleted file mode 100644
index 59a689a26..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/authn/context/package-info.java
+++ /dev/null
@@ -1,24 +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.
- */
-
-/**
- * Context tree subtypes in support of SAML-related authentication.
- *
- * <p>NOTE: This is not related to the SAML AuthnContext concept, but concerns the
- * profile-related state-tracking context tree.</p>
- */
-package net.shibboleth.idp.saml.authn.context;
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/binding/BindingDescriptor.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/binding/BindingDescriptor.java
deleted file mode 100644
index 85b8cd88c..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/binding/BindingDescriptor.java
+++ /dev/null
@@ -1,51 +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.saml.binding;
-
-import javax.annotation.Nullable;
-
-import net.shibboleth.shared.primitive.StringSupport;
-
-/**
- * Subclass that adds awareness of a Spring bean ID for a binding's
- * {@link org.opensaml.messaging.encoder.MessageEncoder}.
- */
-public class BindingDescriptor extends org.opensaml.saml.common.binding.BindingDescriptor {
-
- /** Spring bean ID of message encoder. */
- @Nullable private String encoderBeanId;
-
- /**
- * Get the Spring bean ID of the binding's {@link org.opensaml.messaging.encoder.MessageEncoder}.
- *
- * @return bean ID of message encoder
- */
- @Nullable public String getEncoderBeanId() {
- return encoderBeanId;
- }
-
- /**
- * Set the Spring bean ID of the binding's {@link org.opensaml.messaging.encoder.MessageEncoder}.
- *
- * @param id bean ID of message encoder
- */
- public void setEncoderBeanId(@Nullable final String id) {
- encoderBeanId = StringSupport.trimOrNull(id);
- }
-
-}
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/binding/package-info.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/binding/package-info.java
deleted file mode 100644
index c19f6565c..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/binding/package-info.java
+++ /dev/null
@@ -1,22 +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.
- */
-
-/**
- * Classes related to SAML bindings.
- */
-
-package net.shibboleth.idp.saml.binding;
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/SAMLArtifactConsumerProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/SAMLArtifactConsumerProfileConfiguration.java
deleted file mode 100644
index 5ba65da93..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/SAMLArtifactConsumerProfileConfiguration.java
+++ /dev/null
@@ -1,48 +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.saml.profile.config;
-
-import javax.annotation.Nullable;
-
-import org.opensaml.messaging.context.MessageContext;
-
-/**
- * Common interface for SAML profile configurations involving artifact consumption, for example artifact
- * resolution requests.
- */
-public interface SAMLArtifactConsumerProfileConfiguration extends SAMLProfileConfiguration {
-
- /**
- * Get whether artifact resolution requests should be signed.
- *
- * @param messageContext current message context
- *
- * @return whether artifact resolution requests should be signed
- */
- boolean isSignArtifactRequests(@Nullable final MessageContext messageContext);
-
- /**
- * Get whether artifact resolution requests should use client TLS.
- *
- * @param messageContext current message context
- *
- * @return whether artifact resolution requests should use client TLS
- */
- boolean isClientTLSArtifactRequests(@Nullable final MessageContext messageContext);
-
-}
\ No newline at end of file
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 edc37c16d..08069a6cf 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
@@ -30,8 +30,9 @@ 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 InterceptorAwareProfileConfiguration {
+/** Common interface for IdP SAML profile configurations. */
+public interface SAMLProfileConfiguration extends net.shibboleth.saml.profile.config.SAMLProfileConfiguration,
+ InterceptorAwareProfileConfiguration {
/**
* Get the predicate used to determine if generated assertions should be signed.
@@ -42,24 +43,6 @@ public interface SAMLProfileConfiguration extends InterceptorAwareProfileConfigu
*/
boolean isSignAssertions(@Nullable final ProfileRequestContext profileRequestContext);
- /**
- * Get the predicate used to determine if generated requests should be signed.
- *
- * @param profileRequestContext current profile request context
- *
- * @return predicate used to determine if generated requests should be signed
- */
- boolean isSignRequests(@Nullable final ProfileRequestContext profileRequestContext);
-
- /**
- * Get the predicate used to determine if generated responses should be signed.
- *
- * @param profileRequestContext current profile request context
- *
- * @return predicate used to determine if generated responses should be signed
- */
- boolean isSignResponses(@Nullable final ProfileRequestContext profileRequestContext);
-
/**
* Get the lifetime of generated assertions.
*
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/AllowedSAMLPresentersPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/AllowedSAMLPresentersPredicate.java
index d137744ee..ea33ddf58 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/AllowedSAMLPresentersPredicate.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/AllowedSAMLPresentersPredicate.java
@@ -38,8 +38,10 @@ import org.slf4j.Logger;
/**
* Predicate which evaluates the inbound {@link SAMLPresenterEntityContext#getEntityId()}
* against a specified collection of entityIDs.
+ *
+ * @deprecated
*/
- at SuppressWarnings("removal")
+ at Deprecated(since="5.0.0", forRemoval=true)
public class AllowedSAMLPresentersPredicate implements Predicate<ProfileRequestContext> {
/** Logger. */
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/LegacyEncryptionRequirementPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/LegacyEncryptionRequirementPredicate.java
deleted file mode 100644
index dc937b225..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/LegacyEncryptionRequirementPredicate.java
+++ /dev/null
@@ -1,87 +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.saml.profile.config.logic;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.shared.logic.Constraint;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.profile.logic.NoConfidentialityMessageChannelPredicate;
-
-/**
- * A predicate implementation that supports the legacy V2 configuration options of
- * "always", "conditional", and "never" for encryption.
- */
-public class LegacyEncryptionRequirementPredicate extends NoConfidentialityMessageChannelPredicate {
-
- /** Internal enum for the options supported. */
- private enum EncryptionRequirementSetting {
- /** Always encrypt. */
- ALWAYS,
-
- /** Encrypt only if confidentiality is not otherwise assumed. */
- CONDITIONAL,
-
- /** Never encrypt. */
- NEVER,
- }
-
- /** The setting in effect. */
- private final EncryptionRequirementSetting settingToApply;
-
- /**
- * Constructor.
- *
- * @param setting the setting to apply
- */
- public LegacyEncryptionRequirementPredicate(@Nonnull @NotEmpty final String setting) {
- Constraint.isNotNull(setting, "Encryption requirement setting cannot be null");
-
- if ("always".equals(setting)) {
- settingToApply = EncryptionRequirementSetting.ALWAYS;
- } else if ("conditional".equals(setting)) {
- settingToApply = EncryptionRequirementSetting.CONDITIONAL;
- } else if ("never".equals(setting)) {
- settingToApply = EncryptionRequirementSetting.NEVER;
- } else {
- throw new IllegalArgumentException("Encryption requirement setting not one of the supported values");
- }
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean test(@Nullable final ProfileRequestContext input) {
- switch (settingToApply) {
- case ALWAYS:
- return true;
-
- case NEVER:
- return false;
-
- case CONDITIONAL:
- return super.test(input);
-
- default:
- throw new IllegalArgumentException("Encryption requirement setting not one of the supported values");
- }
- }
-
-}
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/LegacySigningRequirementPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/LegacySigningRequirementPredicate.java
deleted file mode 100644
index 849c38bf4..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/LegacySigningRequirementPredicate.java
+++ /dev/null
@@ -1,87 +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.saml.profile.config.logic;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.shared.logic.Constraint;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.profile.logic.NoIntegrityMessageChannelPredicate;
-
-/**
- * A predicate implementation that supports the legacy V2 configuration options of
- * "always", "conditional", and "never" for signing.
- */
-public class LegacySigningRequirementPredicate extends NoIntegrityMessageChannelPredicate {
-
- /** Internal enum for the options supported. */
- private enum SigningRequirementSetting {
- /** Always sign. */
- ALWAYS,
-
- /** Sign only if integrity is not otherwise assumed. */
- CONDITIONAL,
-
- /** Never sign. */
- NEVER,
- }
-
- /** The setting in effect. */
- private final SigningRequirementSetting settingToApply;
-
- /**
- * Constructor.
- *
- * @param setting the setting to apply
- */
- public LegacySigningRequirementPredicate(@Nonnull @NotEmpty final String setting) {
- Constraint.isNotNull(setting, "Signing requirement setting cannot be null");
-
- if ("always".equals(setting)) {
- settingToApply = SigningRequirementSetting.ALWAYS;
- } else if ("conditional".equals(setting)) {
- settingToApply = SigningRequirementSetting.CONDITIONAL;
- } else if ("never".equals(setting)) {
- settingToApply = SigningRequirementSetting.NEVER;
- } else {
- throw new IllegalArgumentException("Signing requirement setting not one of the supported values");
- }
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean test(@Nullable final ProfileRequestContext input) {
- switch (settingToApply) {
- case ALWAYS:
- return true;
-
- case NEVER:
- return false;
-
- case CONDITIONAL:
- return super.test(input);
-
- default:
- throw new IllegalArgumentException("Signing requirement setting not one of the supported values");
- }
- }
-
-}
\ No newline at end of file
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 27799e568..5c9216790 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
@@ -30,8 +30,8 @@ import org.opensaml.saml.saml2.metadata.SPSSODescriptor;
import net.shibboleth.profile.config.ProfileConfiguration;
import net.shibboleth.profile.context.RelyingPartyContext;
import net.shibboleth.profile.context.logic.AbstractRelyingPartyPredicate;
+import net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
-import net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
import net.shibboleth.shared.logic.Constraint;
/** A predicate implementation that forwards to
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
deleted file mode 100644
index 5d55e3401..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignRequestsPredicate.java
+++ /dev/null
@@ -1,108 +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.saml.profile.config.logic;
-
-import java.util.function.Function;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import net.shibboleth.profile.config.ProfileConfiguration;
-import net.shibboleth.profile.context.RelyingPartyContext;
-import net.shibboleth.profile.context.logic.AbstractRelyingPartyPredicate;
-import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
-import net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
-import net.shibboleth.shared.logic.Constraint;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
-import org.opensaml.saml.saml2.metadata.IDPSSODescriptor;
-import org.opensaml.saml.saml2.metadata.RoleDescriptor;
-
-/**
- * A predicate implementation that forwards to
- * {@link SAMLProfileConfiguration#isSignRequests(ProfileRequestContext)}
- * or follows {@link IDPSSODescriptor#getWantAuthnRequestsSigned()} if so configured.
- */
-public class SignRequestsPredicate extends AbstractRelyingPartyPredicate {
-
- /** Whether to override the result based on the WantAuthnRequestsSigned flag in SAML metadata. */
- private boolean honorMetadata;
-
- /** Lookup strategy for {@link SAMLMetadataContext}. */
- private Function<ProfileRequestContext,SAMLMetadataContext> metadataContextLookupStrategy;
-
- /** Constructor. */
- public SignRequestsPredicate() {
- metadataContextLookupStrategy = new SAMLMetadataContextLookupFunction();
- }
-
- /**
- * Set whether to override the result based on the WantAuthnRequestsSigned flag in SAML metadata.
- *
- * <p>Defaults to false.</p>
- *
- * @param flag flag to set
- *
- * @since 4.0.0
- */
- public void setHonorMetadata(final boolean flag) {
- honorMetadata = flag;
- }
-
- /**
- * Set lookup strategy for {@link SAMLMetadataContext}.
- *
- * @param strategy lookup strategy
- *
- * @since 4.0.0
- */
- public void setMetadataContextLookupStrategy(
- @Nonnull final Function<ProfileRequestContext,SAMLMetadataContext> strategy) {
- metadataContextLookupStrategy = Constraint.isNotNull(strategy,
- "SAMLMetadataContext lookup strategy cannot be null");
- }
-
- /** {@inheritDoc} */
- public boolean test(@Nullable final ProfileRequestContext input) {
-
- if (honorMetadata) {
- final SAMLMetadataContext metadataCtx = metadataContextLookupStrategy.apply(input);
- if (metadataCtx != null) {
- final RoleDescriptor role = metadataCtx.getRoleDescriptor();
- if (role instanceof IDPSSODescriptor) {
- final Boolean flag = ((IDPSSODescriptor) role).getWantAuthnRequestsSigned();
- if (flag != null && flag.booleanValue()) {
- return true;
- }
- }
- }
- }
-
- final RelyingPartyContext rpc = getRelyingPartyContext(input);
- if (rpc != null) {
- final ProfileConfiguration pc = rpc.getProfileConfig();
- if (pc != null && pc instanceof SAMLProfileConfiguration) {
- return ((SAMLProfileConfiguration) pc).isSignRequests(input);
- }
- }
-
- return false;
- }
-
-}
\ No newline at end of file
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
deleted file mode 100644
index c8e1cb234..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/SignResponsesPredicate.java
+++ /dev/null
@@ -1,46 +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.saml.profile.config.logic;
-
-import javax.annotation.Nullable;
-
-import net.shibboleth.profile.config.ProfileConfiguration;
-import net.shibboleth.profile.context.RelyingPartyContext;
-import net.shibboleth.profile.context.logic.AbstractRelyingPartyPredicate;
-import net.shibboleth.idp.saml.profile.config.SAMLProfileConfiguration;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-
-/** A predicate implementation that forwards
- * to {@link SAMLProfileConfiguration#isSignResponses(ProfileRequestContext)}. */
-public class SignResponsesPredicate extends AbstractRelyingPartyPredicate {
-
- /** {@inheritDoc} */
- public boolean test(@Nullable final ProfileRequestContext input) {
- final RelyingPartyContext rpc = getRelyingPartyContext(input);
- if (rpc != null) {
- final ProfileConfiguration pc = rpc.getProfileConfig();
- if (pc instanceof SAMLProfileConfiguration) {
- return ((SAMLProfileConfiguration) pc).isSignResponses(input);
- }
- }
-
- return false;
- }
-
-}
\ No newline at end of file
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
deleted file mode 100644
index a5244c288..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/ClientTLSArtifactRequestsPredicate.java
+++ /dev/null
@@ -1,46 +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.saml.profile.config.logic.messaging;
-
-import javax.annotation.Nullable;
-
-import org.opensaml.messaging.context.MessageContext;
-
-import net.shibboleth.profile.config.ProfileConfiguration;
-import net.shibboleth.profile.context.RelyingPartyContext;
-import net.shibboleth.profile.context.logic.messaging.AbstractRelyingPartyPredicate;
-import net.shibboleth.idp.saml.profile.config.SAMLArtifactConsumerProfileConfiguration;
-
-/** A predicate implementation that forwards to
- * {@link SAMLArtifactConsumerProfileConfiguration#isClientTLSArtifactRequests(MessageContext)}. */
-public class ClientTLSArtifactRequestsPredicate extends AbstractRelyingPartyPredicate {
-
- /** {@inheritDoc} */
- public boolean test(@Nullable final MessageContext input) {
- final RelyingPartyContext rpc = getRelyingPartyContext(input);
- if (rpc != null) {
- final ProfileConfiguration pc = rpc.getProfileConfig();
- if (pc != null && pc instanceof SAMLArtifactConsumerProfileConfiguration) {
- return ((SAMLArtifactConsumerProfileConfiguration) pc).isClientTLSArtifactRequests(input);
- }
- }
-
- return false;
- }
-
-}
\ No newline at end of file
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
deleted file mode 100644
index ac85ce816..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/logic/messaging/SignArtifactRequestsPredicate.java
+++ /dev/null
@@ -1,46 +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.saml.profile.config.logic.messaging;
-
-import javax.annotation.Nullable;
-
-import org.opensaml.messaging.context.MessageContext;
-
-import net.shibboleth.profile.config.ProfileConfiguration;
-import net.shibboleth.profile.context.RelyingPartyContext;
-import net.shibboleth.profile.context.logic.messaging.AbstractRelyingPartyPredicate;
-import net.shibboleth.idp.saml.profile.config.SAMLArtifactConsumerProfileConfiguration;
-
-/** A predicate implementation that forwards to
- * {@link SAMLArtifactConsumerProfileConfiguration#isSignArtifactRequests(MessageContext)}. */
-public class SignArtifactRequestsPredicate extends AbstractRelyingPartyPredicate {
-
- /** {@inheritDoc} */
- public boolean test(@Nullable final MessageContext input) {
- final RelyingPartyContext rpc = getRelyingPartyContext(input);
- if (rpc != null) {
- final ProfileConfiguration pc = rpc.getProfileConfig();
- if (pc != null && pc instanceof SAMLArtifactConsumerProfileConfiguration) {
- return ((SAMLArtifactConsumerProfileConfiguration) pc).isSignArtifactRequests(input);
- }
- }
-
- return false;
- }
-
-}
\ No newline at end of file
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/context/navigate/DefaultNameIdentifierFormatStrategy.java
similarity index 99%
rename from idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/DefaultNameIdentifierFormatStrategy.java
rename to idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/context/navigate/DefaultNameIdentifierFormatStrategy.java
index 7149721a0..dd3c79134 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/context/navigate/DefaultNameIdentifierFormatStrategy.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package net.shibboleth.idp.saml.profile.logic;
+package net.shibboleth.idp.saml.profile.context.navigate;
import java.util.ArrayList;
import java.util.List;
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/context/navigate/SAMLMetadataContextLookupFunction.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/context/navigate/SAMLMetadataContextLookupFunction.java
deleted file mode 100644
index 1c8611c09..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/context/navigate/SAMLMetadataContextLookupFunction.java
+++ /dev/null
@@ -1,51 +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.saml.profile.context.navigate;
-
-import javax.annotation.Nullable;
-
-import net.shibboleth.profile.context.RelyingPartyContext;
-import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
-
-import org.opensaml.messaging.context.BaseContext;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
-
-/**
- * A function to access a {@link SAMLMetadataContext} underlying a {@link RelyingPartyContext} located via a
- * lookup function, by default a child of the profile request context.
- */
-public class SAMLMetadataContextLookupFunction extends AbstractRelyingPartyLookupFunction<SAMLMetadataContext> {
-
- /** {@inheritDoc} */
- @Nullable public SAMLMetadataContext apply(@Nullable final ProfileRequestContext input) {
- final RelyingPartyContext rpCtx = getRelyingPartyContextLookupStrategy().apply(input);
- if (rpCtx != null) {
- final BaseContext peer = rpCtx.getRelyingPartyIdContextTree();
- if (peer != null) {
- if (peer instanceof SAMLMetadataContext) {
- return (SAMLMetadataContext) peer;
- }
- return peer.getSubcontext(SAMLMetadataContext.class);
- }
- }
-
- return null;
- }
-
-}
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/MappedEntityAttributesPredicate.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/MappedEntityAttributesPredicate.java
deleted file mode 100644
index 2f80b19c9..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/MappedEntityAttributesPredicate.java
+++ /dev/null
@@ -1,302 +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.saml.profile.logic;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.regex.Pattern;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.opensaml.core.xml.XMLObject;
-import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate;
-import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate.Candidate;
-import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
-import org.slf4j.Logger;
-
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Multimap;
-
-import net.shibboleth.idp.attribute.AttributesMapContainer;
-import net.shibboleth.idp.attribute.EmptyAttributeValue;
-import net.shibboleth.idp.attribute.EmptyAttributeValue.EmptyType;
-import net.shibboleth.shared.annotation.ParameterName;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.primitive.LoggerFactory;
-import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.idp.attribute.IdPAttribute;
-import net.shibboleth.idp.attribute.IdPAttributeValue;
-import net.shibboleth.idp.attribute.ScopedStringAttributeValue;
-import net.shibboleth.idp.attribute.StringAttributeValue;
-
-import java.util.function.Predicate;
-
-/**
- * Extended version of EntityAttributes-driven predicate that uses an optimization to check
- * for mapped attributes in an {@link AttributesMapContainer} structure.
- */
-public class MappedEntityAttributesPredicate extends EntityAttributesPredicate {
-
- /** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(MappedEntityAttributesPredicate.class);
-
- /** Delimiter to build string form of scoped values. */
- @Nonnull @NotEmpty private String scopeDelimiter = "@";
-
- /**
- * Constructor.
- *
- * @param candidates the {@link Candidate} criteria to check for
- */
- public MappedEntityAttributesPredicate(
- @Nonnull @NonnullElements @ParameterName(name="candidates") final Collection<Candidate> candidates) {
- super(candidates);
-
- Constraint.isTrue(Iterables.all(candidates, c -> c.getNameFormat() == null),
- "Use of nameFormat property is impermissible with MappedEntityAttributesPredicate");
- }
-
- /**
- * Constructor.
- *
- * @param candidates the {@link Candidate} criteria to check for
- * @param trim true iff the values found in the metadata should be trimmed before comparison
- */
- public MappedEntityAttributesPredicate(
- @Nonnull @NonnullElements @ParameterName(name="candidates") final Collection<Candidate> candidates,
- @ParameterName(name="trim") final boolean trim) {
- super(candidates, trim);
-
- Constraint.isTrue(Iterables.all(candidates, c -> c.getNameFormat() == null),
- "Use of nameFormat property is impermissible with MappedEntityAttributesPredicate");
- }
-
- /**
- * Constructor.
- *
- * @param candidates the {@link Candidate} criteria to check for
- * @param trim true iff the values found in the metadata should be trimmed before comparison
- * @param all true iff all the criteria must match to be a successful test
- */
- public MappedEntityAttributesPredicate(
- @Nonnull @NonnullElements @ParameterName(name="candidates") final Collection<Candidate> candidates,
- @ParameterName(name="trim") final boolean trim,
- @ParameterName(name="all") final boolean all) {
- super(candidates, trim, all);
-
- Constraint.isTrue(Iterables.all(candidates, c -> c.getNameFormat() == null),
- "Use of nameFormat property is impermissible with MappedEntityAttributesPredicate");
- }
-
- /**
- * Set delimiter for constructing scoped values for comparison.
- *
- * <p>Defaults to '@'.</p>
- *
- * @param delimiter delimiter to use
- */
- public void setScopeDelimiter(@Nonnull @NotEmpty final String delimiter) {
- scopeDelimiter = Constraint.isNotNull(StringSupport.trimOrNull(delimiter),
- "Scope delimiter cannot be null or empty");
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean test(@Nullable final EntityDescriptor input) {
-
- if (getCandidates().isEmpty()) {
- return true;
- } else if (input == null) {
- return false;
- }
-
- final Collection<Candidate> candidates = new ArrayList<>(getCandidates());
-
- if (doTest(input, input.getEntityID(), candidates)) {
-
- // At least one match. Check if sufficient.
- if (!getMatchAll() || candidates.isEmpty()) {
- return true;
- }
- }
-
- XMLObject parent = input.getParent();
- while (parent instanceof EntitiesDescriptor) {
- if (doTest(parent, ((EntitiesDescriptor) parent).getName(), candidates)) {
-
- // At least one match. Check if sufficient.
- if (!getMatchAll() || candidates.isEmpty()) {
- return true;
- }
- }
- parent = parent.getParent();
- }
-
- return false;
- }
-
- /**
- * Evaluate the input object's attached object metadata against the supplied candidates.
- *
- * <p>Any candidates that match will be removed from the input collection.</p>
- *
- * @param input input object
- * @param name label for logging
- * @param candidates candidates to check
- *
- * @return true iff the attached object metadata matched at least one input candidate
- */
- private boolean doTest(@Nonnull final XMLObject input, @Nullable final String name,
- @Nonnull @NonnullElements final Collection<Candidate> candidates) {
- final List<AttributesMapContainer> containerList =
- input.getObjectMetadata().get(AttributesMapContainer.class);
- if (null == containerList || containerList.isEmpty() || containerList.get(0).get() == null ||
- containerList.get(0).get().isEmpty()) {
- log.trace("No mapped Entity Attributes for {}", name);
- return false;
- }
-
- final Multimap<String,? extends IdPAttribute> entityAttributes = containerList.get(0).get();
-
- log.trace("Checking for match against {} Entity Attributes for {}", entityAttributes.size(),
- name);
-
- // Remove each candidate that matches. Tag values are OR'd for matching purposes.
- // Return true iff at least one candidate matches.
- return candidates.removeIf(new EntityAttributesMatcher(entityAttributes));
- }
-
- /**
- * Determines whether an {@link Candidate} criterion is satisfied by the mapped
- * attributes in an entity's metadata.
- */
- private class EntityAttributesMatcher implements Predicate<Candidate> {
-
- /** Population to evaluate for a match. */
- @Nonnull private final Multimap<String,? extends IdPAttribute> attributes;
-
- /**
- * Constructor.
- *
- * @param attrs population to evaluate for a match
- */
- public EntityAttributesMatcher(@Nonnull @NonnullElements final Multimap<String,? extends IdPAttribute> attrs) {
- attributes = Constraint.isNotNull(attrs, "Extension attributes cannot be null");
- }
-
-// Checkstyle: CyclomaticComplexity OFF
- /** {@inheritDoc} */
- public boolean test(@Nullable final Candidate input) {
-
- if (input == null || input.getNameFormat() != null) {
- return false;
- }
-
- final List<String> tagvals = input.getValues();
- final List<Pattern> tagexps = input.getRegexps();
-
- // Track whether we've found every match we need (possibly with arrays of 0 size).
- final boolean[] valflags = new boolean[tagvals.size()];
- final boolean[] expflags = new boolean[tagexps.size()];
-
- // Check each attribute/tag in the populated set.
- for (final IdPAttribute a : attributes.get(input.getName())) {
-
- // Check each tag value's simple content for a value match.
- for (int tagindex = 0; tagindex < tagvals.size(); ++tagindex) {
- final String tagvalstr = tagvals.get(tagindex);
-
- for (final IdPAttributeValue cval : a.getValues()) {
- assert cval != null;
- final String cvalstr = attributeValueToString(cval);
- if (tagvalstr != null && cvalstr != null) {
- if (tagvalstr.equals(cvalstr)) {
- log.trace("Matched mapped Entity Attribute ({}) value {}", a.getId(), tagvalstr);
- valflags[tagindex] = true;
- break;
- } else if (getTrimTags()) {
- if (tagvalstr.equals(cvalstr.trim())) {
- log.trace("Matched mapped Entity Attribute ({}) value {}", a.getId(), tagvalstr);
- valflags[tagindex] = true;
- break;
- }
- }
- }
- }
- }
-
- // Check each tag regular expression for a match.
- for (int tagindex = 0; tagindex < tagexps.size(); ++tagindex) {
-
- for (final IdPAttributeValue cval : a.getValues()) {
- assert cval != null;
- final String cvalstr = attributeValueToString(cval);
- if (tagexps.get(tagindex) != null && cvalstr != null) {
- if (tagexps.get(tagindex).matcher(cvalstr).matches()) {
- log.trace("Matched mapped Entity Attribute ({}) value {}", a.getId(), cvalstr);
- expflags[tagindex] = true;
- break;
- }
- }
- }
- }
- }
-
- for (final boolean flag : valflags) {
- if (!flag) {
- return false;
- }
- }
-
- for (final boolean flag : expflags) {
- if (!flag) {
- return false;
- }
- }
-
- return true;
- }
-// Checkstyle: CyclomaticComplexity ON
-
- /**
- * Convert an IdPAttributeValue to a String if the type is recognized.
- *
- * @param value object to convert
- * @return the converted value, or null
- */
- @Nullable private String attributeValueToString(@Nonnull final IdPAttributeValue value) {
-
- if (value instanceof ScopedStringAttributeValue) {
- return ((ScopedStringAttributeValue) value).getValue() + scopeDelimiter +
- ((ScopedStringAttributeValue) value).getScope();
- } else if (value instanceof StringAttributeValue) {
- return ((StringAttributeValue) value).getValue();
- } else if (value instanceof EmptyAttributeValue) {
- final EmptyType empty = ((EmptyAttributeValue) value).getValue();
- return EmptyType.ZERO_LENGTH_VALUE.equals(empty) ? "" : null;
- }
- return null;
- }
- }
-
-}
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/package-info.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/package-info.java
deleted file mode 100644
index 5f6bbd260..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/logic/package-info.java
+++ /dev/null
@@ -1,22 +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.
- */
-
-/**
- * Functions and predicates supporting SAML profile behavior.
- */
-
-package net.shibboleth.idp.saml.profile.logic;
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/package-info.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/package-info.java
deleted file mode 100644
index bd2ece482..000000000
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/package-info.java
+++ /dev/null
@@ -1,20 +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.
- */
-
-/** SAML 1 profile actions and classes helping to support them. */
-
-package net.shibboleth.idp.saml.saml1.profile;
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ArtifactAwareProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ArtifactAwareProfileConfiguration.java
index a9c078d65..37f02b378 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ArtifactAwareProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ArtifactAwareProfileConfiguration.java
@@ -29,7 +29,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import net.shibboleth.idp.saml.profile.config.SAMLArtifactAwareProfileConfiguration;
import net.shibboleth.idp.saml.profile.config.SAMLArtifactConfiguration;
-import net.shibboleth.idp.saml.profile.config.SAMLArtifactConsumerProfileConfiguration;
+import net.shibboleth.saml.profile.config.SAMLArtifactConsumerProfileConfiguration;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.logic.FunctionSupport;
diff --git a/idp-saml-impl/pom.xml b/idp-saml-impl/pom.xml
index 539b08ee5..f614bae3b 100644
--- a/idp-saml-impl/pom.xml
+++ b/idp-saml-impl/pom.xml
@@ -52,6 +52,10 @@
<groupId>net.shibboleth</groupId>
<artifactId>shib-profile-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>net.shibboleth</groupId>
+ <artifactId>shib-saml-profile-api</artifactId>
+ </dependency>
<dependency>
<groupId>net.shibboleth</groupId>
<artifactId>shib-profile-impl</artifactId>
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
index 9ca72a0e0..6efb146ff 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
@@ -31,7 +31,7 @@ import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
-import net.shibboleth.idp.saml.binding.BindingDescriptor;
+import net.shibboleth.saml.binding.BindingDescriptor;
import net.shibboleth.shared.annotation.constraint.ThreadSafeAfterInit;
import net.shibboleth.shared.component.AbstractInitializableComponent;
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/relyingparty/impl/RelyingPartyConfigurationSupport.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/relyingparty/impl/RelyingPartyConfigurationSupport.java
index 5405436c8..161f8e22a 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/relyingparty/impl/RelyingPartyConfigurationSupport.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/relyingparty/impl/RelyingPartyConfigurationSupport.java
@@ -31,9 +31,9 @@ import org.opensaml.saml.metadata.resolver.MetadataResolver;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import net.shibboleth.idp.profile.relyingparty.RelyingPartyConfiguration;
-import net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
-import net.shibboleth.idp.saml.profile.logic.MappedEntityAttributesPredicate;
import net.shibboleth.profile.context.logic.RelyingPartyIdPredicate;
+import net.shibboleth.saml.profile.context.logic.MappedEntityAttributesPredicate;
+import net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.logic.StrategyIndirectedPredicate;
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ValidateSAMLAuthentication.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ValidateSAMLAuthentication.java
index e6530aee5..e2638843d 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ValidateSAMLAuthentication.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ValidateSAMLAuthentication.java
@@ -67,9 +67,9 @@ import net.shibboleth.idp.profile.IdPEventIds;
import net.shibboleth.idp.saml.authn.principal.AuthnContextClassRefPrincipal;
import net.shibboleth.idp.saml.authn.principal.AuthnContextDeclRefPrincipal;
import net.shibboleth.idp.saml.authn.principal.NameIDPrincipal;
-import net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
import net.shibboleth.shared.annotation.constraint.Live;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
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/context/navigate/tests/DefaultNameIdentifierFormatStrategyTest.java
similarity index 98%
rename from idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/logic/tests/DefaultNameIdentifierFormatStrategyTest.java
rename to idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/context/navigate/tests/DefaultNameIdentifierFormatStrategyTest.java
index 819ca00fb..d05a8020a 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/context/navigate/tests/DefaultNameIdentifierFormatStrategyTest.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package net.shibboleth.idp.saml.profile.logic.tests;
+package net.shibboleth.idp.saml.profile.context.navigate.tests;
import java.util.Arrays;
import java.util.List;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
-import net.shibboleth.idp.saml.profile.logic.DefaultNameIdentifierFormatStrategy;
+import net.shibboleth.idp.saml.profile.context.navigate.DefaultNameIdentifierFormatStrategy;
import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForErrorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForErrorTest.java
index 108bd18aa..d9e83068d 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForErrorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForErrorTest.java
@@ -20,8 +20,8 @@ package net.shibboleth.idp.saml.profile.impl;
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.binding.BindingDescriptor;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.saml.binding.BindingDescriptor;
import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/logic/tests/EntityAttributesPredicateTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/logic/tests/EntityAttributesPredicateTest.java
deleted file mode 100644
index d68abb83e..000000000
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/logic/tests/EntityAttributesPredicateTest.java
+++ /dev/null
@@ -1,181 +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.saml.profile.logic.tests;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-
-import org.opensaml.core.criterion.EntityIdCriterion;
-import org.opensaml.core.testing.XMLObjectBaseTestCase;
-import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate;
-import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate.Candidate;
-import org.opensaml.saml.metadata.resolver.MetadataResolver;
-import org.opensaml.saml.metadata.resolver.filter.MetadataNodeProcessor;
-import org.opensaml.saml.metadata.resolver.filter.impl.NodeProcessingMetadataFilter;
-import org.opensaml.saml.metadata.resolver.impl.DOMMetadataResolver;
-import org.opensaml.saml.saml2.core.Attribute;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
-import org.springframework.context.support.ConversionServiceFactoryBean;
-import org.springframework.context.support.GenericApplicationContext;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-import org.w3c.dom.Document;
-
-import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry;
-import net.shibboleth.idp.saml.attribute.impl.AttributeMappingNodeProcessor;
-import net.shibboleth.idp.saml.profile.logic.MappedEntityAttributesPredicate;
-import net.shibboleth.shared.resolver.CriteriaSet;
-import net.shibboleth.shared.resolver.ResolverException;
-import net.shibboleth.shared.service.ReloadableService;
-import net.shibboleth.shared.spring.config.StringToDurationConverter;
-import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReader;
-
-/**
- * Unit test for {@link EntityAttributesPredicate} and {@link MappedEntityAttributesPredicate}.
- */
- at SuppressWarnings("javadoc")
-public class EntityAttributesPredicateTest extends XMLObjectBaseTestCase {
-
- private String fooEntityID = "http://foo.example.org/shibboleth";
-
- private String barEntityID = "http://bar.example.org/shibboleth";
-
- private String bazEntityID = "http://baz.example.org/shibboleth";
-
- private GenericApplicationContext pendingTeardownContext = null;
-
- private MetadataResolver resolver = null;
-
- @BeforeClass
- protected void setUp() throws Exception {
- String mdFileName = "/net/shibboleth/idp/saml/profile/logic/attribute-mapping-metadata.xml";
-
- final Document mdDoc = parserPool.parse(getClass().getResourceAsStream(mdFileName));
- final DOMMetadataResolver mdProvider = new DOMMetadataResolver(mdDoc.getDocumentElement());
-
- List<MetadataNodeProcessor> processors = new ArrayList<>();
- processors.add(new AttributeMappingNodeProcessor(getService()));
-
- final NodeProcessingMetadataFilter nodeFilter = new NodeProcessingMetadataFilter();
- nodeFilter.setNodeProcessors(processors);
- nodeFilter.initialize();
-
- mdProvider.setMetadataFilter(nodeFilter);
- mdProvider.setId("Test");
- mdProvider.initialize();
-
- resolver = mdProvider;
- }
-
- @AfterClass public void tearDownTestContext() {
- if (null == pendingTeardownContext ) {
- return;
- }
- pendingTeardownContext.close();
- pendingTeardownContext = null;
- }
-
- private void setTestContext(GenericApplicationContext context) {
- tearDownTestContext();
- pendingTeardownContext = context;
- }
-
- private EntityDescriptor getEntity(final String entityID) throws ResolverException {
- return resolver.resolveSingle(new CriteriaSet(new EntityIdCriterion(entityID)));
- }
-
- private ReloadableService<AttributeTranscoderRegistry> getService() {
- final GenericApplicationContext context = new GenericApplicationContext();
- setTestContext(context);
- context.setDisplayName("ApplicationContext: ");
-
- final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
- service.setConverters(new HashSet<>(Arrays.asList(new StringToDurationConverter())));
- service.afterPropertiesSet();
-
- context.getBeanFactory().setConversionService(service.getObject());
-
- final SchemaTypeAwareXMLBeanDefinitionReader beanDefinitionReader =
- new SchemaTypeAwareXMLBeanDefinitionReader(context);
-
- beanDefinitionReader.loadBeanDefinitions("/net/shibboleth/idp/saml/profile/logic/attribute-registry-service.xml");
- context.refresh();
-
- return context.getBean(ReloadableService.class);
- }
-
- @Test
- public void testSimpleMatch() throws ResolverException {
-
- final Candidate tag = new Candidate("zorkmids", Attribute.BASIC);
- tag.setValues(Collections.singletonList("10"));
-
- final EntityAttributesPredicate predicate = new EntityAttributesPredicate(Collections.singletonList(tag));
- Assert.assertFalse(predicate.test(getEntity(fooEntityID)));
- Assert.assertTrue(predicate.test(getEntity(barEntityID)));
- Assert.assertFalse(predicate.test(getEntity(bazEntityID)));
- }
-
- @Test
- public void testMultiLevelMatch() throws ResolverException {
- final Candidate tag1 = new Candidate("http://macedir.org/entity-category", Attribute.URI_REFERENCE);
- tag1.setValues(Collections.singletonList("http://refeds.org/category/research-and-scholarship"));
-
- final Candidate tag2 = new Candidate("urn:oasis:names:tc:SAML:profiles:subject-id:req", Attribute.URI_REFERENCE);
- tag2.setValues(Collections.singletonList("none"));
-
- final EntityAttributesPredicate predicate =
- new EntityAttributesPredicate(Arrays.asList(tag1, tag2), false, true);
- Assert.assertTrue(predicate.test(getEntity(fooEntityID)));
- Assert.assertFalse(predicate.test(getEntity(barEntityID)));
- Assert.assertFalse(predicate.test(getEntity(bazEntityID)));
- }
-
- @Test
- public void testSimpleMatchMapped() throws ResolverException {
-
- final Candidate tag = new Candidate("zorkmids");
- tag.setValues(Collections.singletonList("10"));
-
- final MappedEntityAttributesPredicate predicate = new MappedEntityAttributesPredicate(Collections.singletonList(tag));
- Assert.assertFalse(predicate.test(getEntity(fooEntityID)));
- Assert.assertTrue(predicate.test(getEntity(barEntityID)));
- Assert.assertFalse(predicate.test(getEntity(bazEntityID)));
- }
-
- @Test
- public void testMultiLevelMappedMatch() throws ResolverException {
- final Candidate tag1 = new Candidate("http://macedir.org/entity-category");
- tag1.setValues(Collections.singletonList("http://refeds.org/category/research-and-scholarship"));
-
- final Candidate tag2 = new Candidate("subject-id-req");
- tag2.setValues(Collections.singletonList("none"));
-
- final MappedEntityAttributesPredicate predicate =
- new MappedEntityAttributesPredicate(Arrays.asList(tag1, tag2), false, true);
- Assert.assertTrue(predicate.test(getEntity(fooEntityID)));
- Assert.assertFalse(predicate.test(getEntity(barEntityID)));
- Assert.assertFalse(predicate.test(getEntity(bazEntityID)));
- }
-
-}
\ No newline at end of file
diff --git a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-mapping-metadata.xml b/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-mapping-metadata.xml
deleted file mode 100644
index a9850f5a0..000000000
--- a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-mapping-metadata.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<EntitiesDescriptor Name="example.org"
- xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
- xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute">
-
- <Extensions>
- <mdattr:EntityAttributes>
- <saml:Attribute Name="http://macedir.org/entity-category"
- NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
- <saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue>
- </saml:Attribute>
- </mdattr:EntityAttributes>
- </Extensions>
-
- <EntityDescriptor entityID="http://foo.example.org/shibboleth">
-
- <Extensions>
- <mdattr:EntityAttributes>
- <saml:Attribute Name="urn:oasis:names:tc:SAML:profiles:subject-id:req"
- NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
- <saml:AttributeValue>none</saml:AttributeValue>
- </saml:Attribute>
- </mdattr:EntityAttributes>
- </Extensions>
-
- <IDPSSODescriptor protocolSupportEnumeration="foo">
- <SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://foo.example.org/shibboleth/SSO_BAR"/>
- </IDPSSODescriptor>
-
- </EntityDescriptor>
-
-
- <EntityDescriptor entityID="http://bar.example.org/shibboleth">
-
- <Extensions>
- <mdattr:EntityAttributes>
- <saml:Attribute Name="zorkmids"
- NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
- <saml:AttributeValue>10</saml:AttributeValue>
- </saml:Attribute>
- <saml:Attribute Name="babelfish"
- NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
- <saml:AttributeValue>10</saml:AttributeValue>
- </saml:Attribute>
- </mdattr:EntityAttributes>
- </Extensions>
-
- <SPSSODescriptor protocolSupportEnumeration="foo">
- <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="https://bar.example.org/Shibboleth.sso/POST" index="0"/>
- </SPSSODescriptor>
-
- </EntityDescriptor>
-
- <EntityDescriptor entityID="http://baz.example.org/shibboleth">
-
- <SPSSODescriptor protocolSupportEnumeration="foo">
- <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="https://baz.example.org/Shibboleth.sso/POST" index="0"/>
- </SPSSODescriptor>
-
- </EntityDescriptor>
-
-</EntitiesDescriptor>
diff --git a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-registry-service.xml b/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-registry-service.xml
deleted file mode 100644
index ecbf29ad0..000000000
--- a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-registry-service.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:util="http://www.springframework.org/schema/util"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:c="http://www.springframework.org/schema/c"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
- default-init-method="initialize"
- default-destroy-method="destroy">
-
- <!-- Needed to allow for auto-wiring of descriptors and other componnents. -->
- <context:annotation-config />
-
- <bean id="SAML2NamingFunction" destroy-method=""
- class="net.shibboleth.idp.attribute.transcoding.BasicNamingFunction"
- c:claz="org.opensaml.saml.saml2.core.Attribute">
- <constructor-arg name="function">
- <bean destroy-method=""
- class="net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML2AttributeTranscoder.NamingFunction" />
- </constructor-arg>
- </bean>
-
- <bean id="RegistryServiceStrategy" class="net.shibboleth.idp.attribute.transcoding.impl.AttributeRegistryServiceStrategy"
- p:id="shibboleth.AttributeRegistryService" />
-
- <bean id="shibboleth.AttributeRegistryService" class="net.shibboleth.shared.spring.service.ReloadableSpringService"
- c:claz="net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry"
- c:strategy-ref="RegistryServiceStrategy"
- p:failFast="true"
- p:reloadCheckDelay="0">
- <property name="serviceConfigurations">
- <util:list>
- <value>net/shibboleth/idp/saml/profile/logic/attribute-registry.xml</value>
- </util:list>
- </property>
- </bean>
-
-</beans>
\ No newline at end of file
diff --git a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-registry.xml b/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-registry.xml
deleted file mode 100644
index 9c6fbfda8..000000000
--- a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/attribute-registry.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:util="http://www.springframework.org/schema/util"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:c="http://www.springframework.org/schema/c"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
-
- default-init-method="initialize"
- default-destroy-method="destroy">
-
- <bean id="SAML2StringTranscoder"
- class="net.shibboleth.idp.saml.attribute.transcoding.impl.SAML2StringAttributeTranscoder" />
- <bean id="SAML2ScopedStringTranscoder"
- class="net.shibboleth.idp.saml.attribute.transcoding.impl.SAML2ScopedStringAttributeTranscoder" />
- <bean id="SAML2ByteTranscoder"
- class="net.shibboleth.idp.saml.attribute.transcoding.impl.SAML2ByteAttributeTranscoder" />
- <bean id="SAML2XMLObjectTranscoder"
- class="net.shibboleth.idp.saml.attribute.transcoding.impl.SAML2XMLObjectAttributeTranscoder" />
-
- <bean id="shibboleth.TranscodingRuleLoader" destroy-method=""
- class="net.shibboleth.idp.attribute.transcoding.impl.TranscodingRuleLoader"
- c:dir="net/shibboleth/idp/saml/profile/logic/rules" />
-
-</beans>
diff --git a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/rules/subjectid.txt b/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/rules/subjectid.txt
deleted file mode 100644
index 17d1ceb29..000000000
--- a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/rules/subjectid.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-id = subject-id-req
-transcoder = SAML2StringTranscoder
-saml2.name = urn:oasis:names:tc:SAML:profiles:subject-id:req
diff --git a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/rules/zorkmids.txt b/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/rules/zorkmids.txt
deleted file mode 100644
index 1b25004df..000000000
--- a/idp-saml-impl/src/test/resources/net/shibboleth/idp/saml/profile/logic/rules/zorkmids.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-id = zorkmids
-transcoder = SAML2StringTranscoder
-saml2.name = zorkmids
-saml2.nameFormat = urn:oasis:names:tc:SAML:2.0:attrname-format:basic
diff --git a/idp-ui/src/main/java/net/shibboleth/idp/ui/impl/SetRPUIInformation.java b/idp-ui/src/main/java/net/shibboleth/idp/ui/impl/SetRPUIInformation.java
index 9e5035bbc..0567dad88 100644
--- a/idp-ui/src/main/java/net/shibboleth/idp/ui/impl/SetRPUIInformation.java
+++ b/idp-ui/src/main/java/net/shibboleth/idp/ui/impl/SetRPUIInformation.java
@@ -40,8 +40,8 @@ import org.slf4j.Logger;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.profile.AbstractProfileAction;
-import net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
import net.shibboleth.idp.ui.context.RelyingPartyUIContext;
+import net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.primitive.LoggerFactory;
diff --git a/idp-war/pom.xml b/idp-war/pom.xml
index 56576aae1..cce542636 100644
--- a/idp-war/pom.xml
+++ b/idp-war/pom.xml
@@ -122,6 +122,10 @@
<groupId>net.shibboleth</groupId>
<artifactId>shib-profile-impl</artifactId>
</dependency>
+ <dependency>
+ <groupId>net.shibboleth</groupId>
+ <artifactId>shib-saml-profile-api</artifactId>
+ </dependency>
<dependency>
<groupId>net.shibboleth</groupId>
<artifactId>shib-attribute-api</artifactId>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list