[java-opensaml] 01/14: JSPT-98 Integrate lifecycle checking methods in base classes

Rod Widdowson rdw at steadingsoftware.com
Mon Jul 11 15:47:31 UTC 2022


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

rdw pushed a commit to branch dev/JSPT-98
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=54dbc20b42dc76cef574a3915a58e5eeb334088d

commit 54dbc20b42dc76cef574a3915a58e5eeb334088d
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sun Jun 12 15:18:24 2022 +0100

    JSPT-98 Integrate lifecycle checking methods in base classes
    
    https://shibboleth.atlassian.net/browse/JSPT-98
    
    Stop using ComponentSupport and use the appropriate methods instead: saml-api
---
 .../common/binding/AbstractEndpointResolver.java   | 13 +++++----
 .../profile/AbstractNameIdentifierGenerator.java   | 31 +++++++++++-----------
 .../logic/AbstractNameIDPolicyPredicate.java       | 25 +++++++++--------
 .../logic/AffiliationNameIDPolicyPredicate.java    | 17 ++++++------
 .../resolver/ChainingMetadataResolver.java         | 22 +++++++--------
 .../profile/AbstractSAML2NameIDGenerator.java      |  7 +++--
 6 files changed, 54 insertions(+), 61 deletions(-)

diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/AbstractEndpointResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/AbstractEndpointResolver.java
index b4959e2c5..8979ef69e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/AbstractEndpointResolver.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/AbstractEndpointResolver.java
@@ -28,12 +28,6 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
 import org.opensaml.saml.criterion.BestMatchLocationCriterion;
 import org.opensaml.saml.criterion.BindingCriterion;
 import org.opensaml.saml.criterion.EndpointCriterion;
@@ -43,6 +37,11 @@ import org.opensaml.saml.saml2.metadata.IndexedEndpoint;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent;
+import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
+import net.shibboleth.utilities.java.support.resolver.ResolverException;
+
 /**
  * Base implementation that resolves and validates protocol/profile endpoints using a combination of supplied
  * parameters and SAML metadata.
@@ -117,7 +116,7 @@ public abstract class AbstractEndpointResolver<EndpointType extends Endpoint>
      * @since 4.1.0
      */
     public void setInMetadataOrder(final boolean flag) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         inMetadataOrder = flag;
     }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/AbstractNameIdentifierGenerator.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/AbstractNameIdentifierGenerator.java
index 18cba9571..5f170edd3 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/AbstractNameIdentifierGenerator.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/AbstractNameIdentifierGenerator.java
@@ -24,20 +24,19 @@ import java.util.function.Predicate;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.opensaml.saml.common.SAMLException;
+import org.opensaml.saml.common.SAMLObject;
+
+import com.google.common.base.Predicates;
+
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.saml.common.SAMLException;
-import org.opensaml.saml.common.SAMLObject;
-
-import com.google.common.base.Predicates;
-
 /**
  * Abstract base class for simple implementations of {@link NameIdentifierGenerator}.
  * 
@@ -92,7 +91,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
      * @param condition an activation condition
      */
     public void setActivationCondition(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
 
         activationCondition = Constraint.isNotNull(condition, "Predicate cannot be null");
     }
@@ -113,7 +112,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
      */
     public void setDefaultIdPNameQualifierLookupStrategy(
             @Nullable final Function<ProfileRequestContext,String> strategy) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         defaultIdPNameQualifierLookupStrategy = strategy;
     }
@@ -134,7 +133,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
      */
     public void setDefaultSPNameQualifierLookupStrategy(
             @Nullable final Function<ProfileRequestContext,String> strategy) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         defaultSPNameQualifierLookupStrategy = strategy;
     }
@@ -156,7 +155,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
      * @param flag flag to set
      */
     public void setOmitQualifiers(final boolean flag) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
 
         omitQualifiers = flag;
     }
@@ -172,7 +171,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
      * @param f format to set
      */
     public void setFormat(@Nonnull @NotEmpty final String f) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
 
         format = Constraint.isNotNull(StringSupport.trimOrNull(f), "Format cannot be null or empty");
     }
@@ -196,7 +195,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
      * @param qualifier qualifier to set
      */
     public void setIdPNameQualifier(@Nullable final String qualifier) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
 
         idpNameQualifier = StringSupport.trimOrNull(qualifier);
     }
@@ -221,7 +220,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
      * @param qualifier qualifier to set
      */
     public void setSPNameQualifier(@Nullable final String qualifier) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
 
         spNameQualifier = StringSupport.trimOrNull(qualifier);
     }
@@ -241,7 +240,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
      * @param id value to set
      */
     public void setSPProvidedId(@Nullable final String id) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
 
         spProvidedId = id;
     }
@@ -265,7 +264,7 @@ public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObj
     @Override
     @Nullable public NameIdType generate(@Nonnull final ProfileRequestContext profileRequestContext,
             @Nonnull @NotEmpty final String theFormat) throws SAMLException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         if (!Objects.equals(format, theFormat)) {
             throw new SAMLException("The format to generate does not match the value configured");
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/AbstractNameIDPolicyPredicate.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/AbstractNameIDPolicyPredicate.java
index 56f730536..4d752355c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/AbstractNameIDPolicyPredicate.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/AbstractNameIDPolicyPredicate.java
@@ -26,15 +26,6 @@ import java.util.function.Function;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.logic.Predicate;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.saml1.core.NameIdentifier;
@@ -43,6 +34,14 @@ import org.opensaml.saml.saml2.core.NameIDPolicy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.logic.Predicate;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
 /**
  * Base class for implementations of {@link Predicate} that handle evaluation of name identifier content in various
  * scenarios.
@@ -76,7 +75,7 @@ public abstract class AbstractNameIDPolicyPredicate extends AbstractInitializabl
      * @param strategy lookup strategy
      */
     public void setRequesterIdLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         requesterIdLookupStrategy = strategy;
     }
@@ -87,7 +86,7 @@ public abstract class AbstractNameIDPolicyPredicate extends AbstractInitializabl
      * @param strategy lookup strategy
      */
     public void setResponderIdLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         responderIdLookupStrategy = strategy;
     }
@@ -98,7 +97,7 @@ public abstract class AbstractNameIDPolicyPredicate extends AbstractInitializabl
      * @param strategy lookup function
      */
     public void setObjectLookupStrategy(@Nullable final Function<ProfileRequestContext,SAMLObject> strategy) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         objectLookupStrategy = Constraint.isNotNull(strategy, "Object lookup strategy cannot be null");
     }
@@ -109,7 +108,7 @@ public abstract class AbstractNameIDPolicyPredicate extends AbstractInitializabl
      * @param newFormats    formats to apply predicate to
      */
     public void setFormats(@Nullable final Collection<String> newFormats) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         formats = new HashSet<>(StringSupport.normalizeStringCollection(newFormats));
     }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/AffiliationNameIDPolicyPredicate.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/AffiliationNameIDPolicyPredicate.java
index add09b978..a8ce19245 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/AffiliationNameIDPolicyPredicate.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/AffiliationNameIDPolicyPredicate.java
@@ -22,13 +22,6 @@ import java.util.Objects;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
 import org.opensaml.core.criterion.EntityIdCriterion;
 import org.opensaml.saml.metadata.resolver.MetadataResolver;
 import org.opensaml.saml.saml2.metadata.AffiliateMember;
@@ -37,6 +30,12 @@ import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
+import net.shibboleth.utilities.java.support.resolver.ResolverException;
+
 /**
  * Evaluates name identifier data and enforces a default policy over its content.
  * 
@@ -58,7 +57,7 @@ public class AffiliationNameIDPolicyPredicate extends DefaultNameIDPolicyPredica
      * @param resolver  resolver to use
      */
     public void setMetadataResolver(@Nonnull final MetadataResolver resolver) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         metadataResolver = Constraint.isNotNull(resolver, "MetadataResolver cannot be null");
     }
@@ -78,7 +77,7 @@ public class AffiliationNameIDPolicyPredicate extends DefaultNameIDPolicyPredica
     protected boolean doApply(@Nullable final String requesterId, @Nullable final String responderId,
             @Nullable final String format, @Nullable final String nameQualifier,
             @Nullable final String spNameQualifier) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         if (super.doApply(requesterId, responderId, format, nameQualifier, spNameQualifier)) {
             return true;
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
index 0273bc976..588796e45 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
@@ -29,21 +29,20 @@ import java.util.stream.StreamSupport;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import org.opensaml.saml.metadata.criteria.entity.DetectDuplicateEntityIDsCriterion;
+import org.opensaml.saml.metadata.resolver.filter.MetadataFilter;
+import org.opensaml.saml.saml2.metadata.EntityDescriptor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
-import org.opensaml.saml.metadata.criteria.entity.DetectDuplicateEntityIDsCriterion;
-import org.opensaml.saml.metadata.resolver.filter.MetadataFilter;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
  * A metadata provider that uses registered resolvers, in turn, to answer queries.
  * 
@@ -86,8 +85,7 @@ public class ChainingMetadataResolver extends AbstractIdentifiableInitializableC
      */
     public void setResolvers(@Nonnull @NonnullElements final List<? extends MetadataResolver> newResolvers)
             throws ResolverException {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
 
         if (newResolvers == null || newResolvers.isEmpty()) {
             resolvers = Collections.emptyList();
@@ -140,7 +138,7 @@ public class ChainingMetadataResolver extends AbstractIdentifiableInitializableC
     /** {@inheritDoc} */
     @Override
     @Nullable public EntityDescriptor resolveSingle(@Nullable final CriteriaSet criteria) throws ResolverException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final Iterable<EntityDescriptor> iterable = resolve(criteria);
         if (iterable != null) {
@@ -155,8 +153,8 @@ public class ChainingMetadataResolver extends AbstractIdentifiableInitializableC
     /** {@inheritDoc} */
     @Override
     @Nonnull public Iterable<EntityDescriptor> resolve(@Nullable final CriteriaSet criteria) throws ResolverException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        
+        throwComponentStateExceptions();
+
         DetectDuplicateEntityIDs detectDuplicates = getDetectDuplicateEntityIDs();
         if (criteria.contains(DetectDuplicateEntityIDsCriterion.class)) {
             detectDuplicates = criteria.get(DetectDuplicateEntityIDsCriterion.class).getValue();
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/AbstractSAML2NameIDGenerator.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/AbstractSAML2NameIDGenerator.java
index 1698e0530..00c1e9034 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/AbstractSAML2NameIDGenerator.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/AbstractSAML2NameIDGenerator.java
@@ -22,9 +22,6 @@ import java.util.function.Function;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-
 import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
 import org.opensaml.messaging.context.navigate.MessageLookup;
 import org.opensaml.profile.context.ProfileRequestContext;
@@ -39,6 +36,8 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Strings;
 
+import net.shibboleth.utilities.java.support.logic.Constraint;
+
 /**
  * Abstract base class for simple implementations of {@link SAML2NameIDGenerator}.
  *
@@ -76,7 +75,7 @@ public abstract class AbstractSAML2NameIDGenerator extends AbstractNameIdentifie
      */
     public void setRequestLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AuthnRequest> strategy) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
     
         requestLookupStrategy = Constraint.isNotNull(strategy, "AuthnRequest lookup strategy cannot be null");
     }

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


More information about the commits mailing list