[java-opensaml] 01/14: JSPT-98 Integrate lifecycle checking methods in base classes
Rod Widdowson
rdw at steadingsoftware.com
Mon Jun 13 19:42:32 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=799b80cb5f9870acd3c634b57dcb78b622bd5526
commit 799b80cb5f9870acd3c634b57dcb78b622bd5526
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