[java-identity-provider] 01/06: JSPT-98 Integrate lifecycle checking methods in base classes
Rod Widdowson
rdw at steadingsoftware.com
Fri Jul 15 09:44:51 UTC 2022
This is an automated email from the git hooks/post-receive script.
rdw 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=403cb1c026fbd4d1f8fd94134dd2dc8a4395e812
commit 403cb1c026fbd4d1f8fd94134dd2dc8a4395e812
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu Jul 14 16:42:49 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:
idp-session-imple idp-session-api
---
.../idp/session/SPSessionSerializerRegistry.java | 5 +-
.../idp/session/impl/DestroySessions.java | 28 ++++----
.../idp/session/impl/DetectIdentitySwitch.java | 24 +++----
.../impl/ExtractActiveAuthenticationResults.java | 14 ++--
.../impl/PopulateLogoutPropagationContext.java | 36 ++++------
.../PopulateMultiRPContextFromLogoutContext.java | 33 ++++-----
.../idp/session/impl/PopulateSessionContext.java | 30 ++++----
.../shibboleth/idp/session/impl/ProcessLogout.java | 36 ++++------
.../session/impl/StorageBackedSessionManager.java | 80 +++++++++-------------
.../UpdateSessionWithAuthenticationResult.java | 28 ++++----
.../session/impl/UpdateSessionWithSPSession.java | 25 +++----
11 files changed, 142 insertions(+), 197 deletions(-)
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
index fb3e288e9..f03932ad0 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
@@ -32,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import net.shibboleth.utilities.java.support.annotation.ParameterName;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
/**
@@ -75,7 +74,7 @@ public final class SPSessionSerializerRegistry extends AbstractInitializableComp
*/
public void setMappings(@Nonnull @NonnullElements final
Map<Class<? extends SPSession>,StorageSerializer<? extends SPSession>> map) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
Constraint.isNotNull(map, "Map cannot be null");
for (final Map.Entry<Class<? extends SPSession>,StorageSerializer<? extends SPSession>> entry
@@ -94,7 +93,7 @@ public final class SPSessionSerializerRegistry extends AbstractInitializableComp
* @return a corresponding StorageSerializer, or null
*/
@Nullable public <T extends SPSession> StorageSerializer<T> lookup(@Nonnull final Class<T> type) {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
Constraint.isNotNull(type, "SPSession type cannot be null");
final StorageSerializer<T> serializer = (StorageSerializer<T>) registry.get(type);
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DestroySessions.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DestroySessions.java
index b08eef9e2..66d55c4c2 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DestroySessions.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DestroySessions.java
@@ -22,6 +22,15 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.profile.action.ActionSupport;
+import org.opensaml.profile.action.EventIds;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Predicates;
+
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.SessionException;
@@ -30,18 +39,8 @@ import net.shibboleth.idp.session.context.LogoutContext;
import net.shibboleth.idp.session.context.SessionContext;
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 org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.action.ActionSupport;
-import org.opensaml.profile.action.EventIds;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicates;
-
/**
* Profile action that destroys any {@link IdPSession}s found in a {@link LogoutContext}.
*
@@ -88,8 +87,7 @@ public class DestroySessions extends AbstractProfileAction {
* @param manager session manager to use
*/
public void setSessionManager(@Nonnull final SessionManager manager) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
}
@@ -100,8 +98,7 @@ public class DestroySessions extends AbstractProfileAction {
*/
public void setSessionContextLookupStrategy(
@Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionContextLookupStrategy = Constraint.isNotNull(strategy,
"SessionContext lookup strategy cannot be null");
}
@@ -113,8 +110,7 @@ public class DestroySessions extends AbstractProfileAction {
*/
public void setLogoutContextLookupStrategy(
@Nonnull final Function<ProfileRequestContext,LogoutContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
logoutContextLookupStrategy = Constraint.isNotNull(strategy,
"LogoutContext lookup strategy cannot be null");
}
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DetectIdentitySwitch.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DetectIdentitySwitch.java
index 5b8a20cb3..47aef89b4 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DetectIdentitySwitch.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DetectIdentitySwitch.java
@@ -23,6 +23,13 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.profile.action.ActionSupport;
+import org.opensaml.profile.action.EventIds;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import net.shibboleth.idp.authn.AbstractAuthenticationAction;
import net.shibboleth.idp.authn.AuthenticationResult;
import net.shibboleth.idp.authn.AuthnEventIds;
@@ -33,16 +40,8 @@ import net.shibboleth.idp.session.SessionManager;
import net.shibboleth.idp.session.context.SessionContext;
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 org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.action.ActionSupport;
-import org.opensaml.profile.action.EventIds;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
/**
* An authentication action that checks for a mismatch between an existing session's identity and
@@ -93,8 +92,7 @@ public class DetectIdentitySwitch extends AbstractAuthenticationAction {
* @param manager session manager to use
*/
public void setSessionManager(@Nonnull final SessionManager manager) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
}
@@ -105,8 +103,7 @@ public class DetectIdentitySwitch extends AbstractAuthenticationAction {
*/
public void setSessionContextLookupStrategy(
@Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionContextLookupStrategy = Constraint.isNotNull(strategy,
"SessionContext lookup strategy cannot be null");
}
@@ -118,8 +115,7 @@ public class DetectIdentitySwitch extends AbstractAuthenticationAction {
*/
public void setSubjectCanonicalizationContextLookupStrategy(
@Nonnull final Function<ProfileRequestContext,SubjectCanonicalizationContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
c14nContextLookupStrategy = Constraint.isNotNull(strategy,
"SubjectCanonicalizationContext lookup strategy cannot be null");
}
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
index 3cb1fb9e8..8436a836a 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
@@ -26,20 +26,19 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import net.shibboleth.idp.authn.AbstractAuthenticationAction;
import net.shibboleth.idp.authn.AuthenticationFlowDescriptor;
import net.shibboleth.idp.authn.AuthenticationResult;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.context.SessionContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
-import org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
/**
* An authentication action that populates a {@link AuthenticationContext} with the active
* {@link AuthenticationResult} objects found in a {@link SessionContext} that is a direct
@@ -80,8 +79,7 @@ public class ExtractActiveAuthenticationResults extends AbstractAuthenticationAc
*/
public void setSessionContextLookupStrategy(
@Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionContextLookupStrategy = Constraint.isNotNull(strategy,
"SessionContext lookup strategy cannot be null");
}
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java
index 39a0017ef..cc5ec6af7 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java
@@ -23,18 +23,6 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import net.shibboleth.idp.profile.AbstractProfileAction;
-import net.shibboleth.idp.session.SPSession;
-import net.shibboleth.idp.session.SPSessionSerializerRegistry;
-import net.shibboleth.idp.session.context.LogoutContext;
-import net.shibboleth.idp.session.context.LogoutPropagationContext;
-import net.shibboleth.idp.session.context.LogoutPropagationContext.Result;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.security.DataSealer;
-import net.shibboleth.utilities.java.support.security.DataSealerException;
-
import org.opensaml.messaging.MessageException;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.messaging.decoder.MessageDecodingException;
@@ -44,9 +32,19 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.storage.StorageSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
import org.springframework.webflow.execution.RequestContext;
+import net.shibboleth.idp.profile.AbstractProfileAction;
+import net.shibboleth.idp.session.SPSession;
+import net.shibboleth.idp.session.SPSessionSerializerRegistry;
+import net.shibboleth.idp.session.context.LogoutContext;
+import net.shibboleth.idp.session.context.LogoutPropagationContext;
+import net.shibboleth.idp.session.context.LogoutPropagationContext.Result;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.security.DataSealer;
+import net.shibboleth.utilities.java.support.security.DataSealerException;
+
/**
* Profile action that creates a {@link LogoutPropagationContext} containing {@link SPSession} to be destroyed. The
* SP sessions may be populated:
@@ -107,8 +105,7 @@ public class PopulateLogoutPropagationContext extends AbstractProfileAction {
* @param sealer the {@link DataSealer} to use
*/
public void setDataSealer(@Nullable final DataSealer sealer) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
dataSealer = sealer;
}
@@ -118,8 +115,7 @@ public class PopulateLogoutPropagationContext extends AbstractProfileAction {
* @param registry a registry of SPSession class to serializer mappings
*/
public void setSPSessionSerializerRegistry(@Nullable final SPSessionSerializerRegistry registry) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
spSessionSerializerRegistry = registry;
}
@@ -130,8 +126,7 @@ public class PopulateLogoutPropagationContext extends AbstractProfileAction {
*/
public void setLogoutPropagationContextCreationStrategy(
@Nonnull final Function<ProfileRequestContext, LogoutPropagationContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
contextCreationStrategy = Constraint.isNotNull(strategy,
"LogoutPropagationContext creation strategy cannot be null");
}
@@ -142,8 +137,7 @@ public class PopulateLogoutPropagationContext extends AbstractProfileAction {
* @param strategy lookup strategy
*/
public void setSessionLookupStrategy(@Nullable final Function<ProfileRequestContext,SPSession> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionLookupStrategy = strategy;
}
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateMultiRPContextFromLogoutContext.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateMultiRPContextFromLogoutContext.java
index 629525f3c..7be644b6f 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateMultiRPContextFromLogoutContext.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateMultiRPContextFromLogoutContext.java
@@ -23,19 +23,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.profile.AbstractProfileAction;
-import net.shibboleth.idp.profile.context.MultiRelyingPartyContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.session.SPSession;
-import net.shibboleth.idp.session.context.LogoutContext;
-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.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.messaging.context.navigate.ChildContextLookup;
import org.opensaml.profile.context.ProfileRequestContext;
@@ -49,6 +36,18 @@ import org.opensaml.saml.saml2.metadata.SPSSODescriptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import net.shibboleth.idp.profile.AbstractProfileAction;
+import net.shibboleth.idp.profile.context.MultiRelyingPartyContext;
+import net.shibboleth.idp.profile.context.RelyingPartyContext;
+import net.shibboleth.idp.session.SPSession;
+import net.shibboleth.idp.session.context.LogoutContext;
+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.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;
+
/**
* Profile action that populates a {@link MultiRelyingPartyContext} with the relying party
* information from a {@link LogoutContext}, and extends each {@link RelyingPartyContext}
@@ -92,8 +91,7 @@ public class PopulateMultiRPContextFromLogoutContext extends AbstractProfileActi
* @param resolver the resolver to use
*/
public void setRoleDescriptorResolver(@Nonnull final RoleDescriptorResolver resolver) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
metadataResolver = Constraint.isNotNull(resolver, "RoleDescriptorResolver cannot be null");
}
@@ -103,8 +101,7 @@ public class PopulateMultiRPContextFromLogoutContext extends AbstractProfileActi
* @param strategy lookup strategy
*/
public void setLogoutContextLookupStrategy(@Nonnull final Function<ProfileRequestContext,LogoutContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
logoutContextLookupStrategy = Constraint.isNotNull(strategy, "LogoutContext lookup strategy cannot be null");
}
@@ -149,7 +146,7 @@ public class PopulateMultiRPContextFromLogoutContext extends AbstractProfileActi
/** {@inheritDoc} */
@Override
protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
final MultiRelyingPartyContext multiCtx = new MultiRelyingPartyContext();
profileRequestContext.addSubcontext(multiCtx, true);
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java
index 42c6fa291..3bc112211 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java
@@ -21,8 +21,17 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import jakarta.servlet.http.HttpServletRequest;
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.profile.action.ActionSupport;
+import org.opensaml.profile.action.EventIds;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Predicates;
+
+import jakarta.servlet.http.HttpServletRequest;
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.SessionException;
@@ -31,21 +40,11 @@ import net.shibboleth.idp.session.context.SessionContext;
import net.shibboleth.idp.session.criterion.HttpServletRequestCriterion;
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.net.HttpServletSupport;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
-import org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.action.ActionSupport;
-import org.opensaml.profile.action.EventIds;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicates;
-
/**
* A profile action that populates a {@link SessionContext} with an active, valid
* {@link IdPSession}.
@@ -83,8 +82,7 @@ public class PopulateSessionContext extends AbstractProfileAction {
* @param resolver session resolver to use
*/
public void setSessionResolver(@Nonnull final SessionResolver resolver) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionResolver = Constraint.isNotNull(resolver, "SessionResolver cannot be null");
}
@@ -95,8 +93,7 @@ public class PopulateSessionContext extends AbstractProfileAction {
*/
public void setSessionContextCreationStrategy(
@Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionContextCreationStrategy = Constraint.isNotNull(strategy,
"SessionContext creation strategy cannot be null");
}
@@ -109,8 +106,7 @@ public class PopulateSessionContext extends AbstractProfileAction {
* @since 4.2.0
*/
public void setAddressLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
addressLookupStrategy = strategy;
}
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ProcessLogout.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ProcessLogout.java
index d83e8e243..5ed66fad5 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ProcessLogout.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ProcessLogout.java
@@ -21,8 +21,17 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import jakarta.servlet.http.HttpServletRequest;
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.profile.action.ActionSupport;
+import org.opensaml.profile.action.EventIds;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Predicates;
+
+import jakarta.servlet.http.HttpServletRequest;
import net.shibboleth.idp.authn.context.SubjectContext;
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.session.IdPSession;
@@ -34,21 +43,11 @@ import net.shibboleth.idp.session.context.SessionContext;
import net.shibboleth.idp.session.criterion.HttpServletRequestCriterion;
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.net.HttpServletSupport;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
-import org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.action.ActionSupport;
-import org.opensaml.profile.action.EventIds;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicates;
-
/**
* Profile action that resolves an active session from the profile request, and records it,
* populating the associated {@link SPSession} objects into a {@link LogoutContext}.
@@ -101,8 +100,7 @@ public class ProcessLogout extends AbstractProfileAction {
* @param resolver session resolver to use
*/
public void setSessionResolver(@Nonnull final SessionResolver resolver) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionResolver = Constraint.isNotNull(resolver, "SessionResolver cannot be null");
}
@@ -113,8 +111,7 @@ public class ProcessLogout extends AbstractProfileAction {
*/
public void setSubjectContextCreationStrategy(
@Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
subjectContextCreationStrategy = Constraint.isNotNull(strategy,
"SubjectContext creation strategy cannot be null");
}
@@ -126,8 +123,7 @@ public class ProcessLogout extends AbstractProfileAction {
*/
public void setSessionContextCreationStrategy(
@Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionContextCreationStrategy = Constraint.isNotNull(strategy,
"SessionContext creation strategy cannot be null");
}
@@ -139,8 +135,7 @@ public class ProcessLogout extends AbstractProfileAction {
*/
public void setLogoutContextCreationStrategy(
@Nonnull final Function<ProfileRequestContext,LogoutContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
logoutContextCreationStrategy = Constraint.isNotNull(strategy,
"LogoutContext creation strategy cannot be null");
}
@@ -164,8 +159,7 @@ public class ProcessLogout extends AbstractProfileAction {
* @since 4.2.0
*/
public void setAddressLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
addressLookupStrategy = strategy;
}
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
index 54109157b..84df1a23c 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
@@ -29,10 +29,20 @@ import java.util.function.BiPredicate;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+
+import org.opensaml.storage.StorageRecord;
+import org.opensaml.storage.StorageSerializer;
+import org.opensaml.storage.StorageService;
+import org.opensaml.storage.VersionMismatchException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
+
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
-
import net.shibboleth.idp.authn.AuthenticationFlowDescriptor;
import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.SPSession;
@@ -48,7 +58,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
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.net.CookieManager;
import net.shibboleth.utilities.java.support.net.HttpServletSupport;
@@ -57,16 +66,6 @@ import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
import net.shibboleth.utilities.java.support.security.IdentifierGenerationStrategy;
-import org.opensaml.storage.StorageRecord;
-import org.opensaml.storage.StorageSerializer;
-import org.opensaml.storage.StorageService;
-import org.opensaml.storage.VersionMismatchException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableList;
-
/**
* Implementation of {@link SessionManager} and {@link SessionResolver} interfaces that relies on a
* {@link StorageService} for persistence and lifecycle management of data.
@@ -189,8 +188,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param request servlet request
*/
public void setHttpServletRequest(@Nullable final HttpServletRequest request) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
httpRequest = request;
}
@@ -200,8 +198,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param response servlet response
*/
public void setHttpServletResponse(@Nullable final HttpServletResponse response) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
httpResponse = response;
}
@@ -220,8 +217,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param timeout the policy to set
*/
public void setSessionTimeout(@Nonnull final Duration timeout) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionTimeout = Constraint.isNotNull(timeout, "Timeout cannot be null");
}
@@ -240,8 +236,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param slop amount of time to defer expiration of records
*/
public void setSessionSlop(@Nonnull final Duration slop) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionSlop = Constraint.isNotNull(slop, "Slop cannot be null");
}
@@ -260,8 +255,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param flag flag to set
*/
public void setMaskStorageFailure(final boolean flag) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
maskStorageFailure = flag;
}
@@ -284,8 +278,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param flag flag to set
*/
public void setTrackSPSessions(final boolean flag) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
trackSPSessions = flag;
}
@@ -308,8 +301,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param flag flag to set
*/
public void setSecondaryServiceIndex(final boolean flag) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
secondaryServiceIndex = flag;
}
@@ -331,8 +323,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param flag flag to set
*/
public void setConsistentAddress(final boolean flag) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
consistentAddressCondition =
DefaultConsistentAddressConditionFactory.getDefaultConsistentAddressCondition(flag);
}
@@ -345,8 +336,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @since 4.0.0
*/
public void setConsistentAddressCondition(@Nonnull final BiPredicate<String,String> condition) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
consistentAddressCondition = Constraint.isNotNull(condition, "Consistent address condition cannot be null");
}
@@ -356,8 +346,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param name cookie name to use
*/
public void setCookieName(@Nonnull @NotEmpty final String name) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
cookieName = Constraint.isNotNull(StringSupport.trimOrNull(name), "Cookie name cannot be null or empty");
}
@@ -367,8 +356,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param manager the CookieManager to use.
*/
public void setCookieManager(@Nonnull final CookieManager manager) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
cookieManager = Constraint.isNotNull(manager, "CookieManager cannot be null");
}
@@ -387,8 +375,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param storage the back-end to use
*/
public void setStorageService(@Nonnull final StorageService storage) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
storageService = Constraint.isNotNull(storage, "StorageService cannot be null");
}
@@ -400,8 +387,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @return true iff the threshold is met
*/
public boolean storageServiceMeetsThreshold() {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-
+ throwComponentStateExceptions();
return storageService.getCapabilities().getValueSize() >= storageServiceThreshold;
}
@@ -418,8 +404,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param size size in characters
*/
public void setStorageServiceThreshold(final long size) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
storageServiceThreshold = size;
}
@@ -429,8 +414,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param newIDGenerator the new IdentifierGenerator to use
*/
public void setIDGenerator(@Nonnull final IdentifierGenerationStrategy newIDGenerator) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
idGenerator = Constraint.isNotNull(newIDGenerator, "IdentifierGenerationStrategy cannot be null");
}
@@ -462,8 +446,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
*/
public void setAuthenticationFlowDescriptors(
@Nonnull @NonnullElements final Iterable<AuthenticationFlowDescriptor> flows) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
flowDescriptorMap.clear();
for (final AuthenticationFlowDescriptor desc : Constraint.isNotNull(flows, "Flow collection cannot be null")) {
if (desc != null) {
@@ -487,8 +470,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
* @param registry a registry of SPSession class to serializer mappings
*/
public void setSPSessionSerializerRegistry(@Nullable final SPSessionSerializerRegistry registry) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
spSessionSerializerRegistry = registry;
}
@@ -516,7 +498,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
/** {@inheritDoc} */
@Override @Nonnull public IdPSession createSession(@Nonnull @NotEmpty final String principalName)
throws SessionException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
if (httpRequest == null) {
throw new SessionException("No HttpServletRequest available, can't bind to client address");
@@ -556,7 +538,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
/** {@inheritDoc} */
@Override public void destroySession(@Nonnull @NotEmpty final String sessionId, final boolean unbind)
throws SessionException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
// Note that this can leave entries in the secondary SPSession records, but those
// will eventually expire outright, or can be cleaned up if the index is searched.
@@ -578,7 +560,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
// Checkstyle: CyclomaticComplexity OFF
@Override @Nonnull @NonnullElements public Iterable<IdPSession> resolve(@Nullable final CriteriaSet criteria)
throws ResolverException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
// We support either session ID lookup, or secondary lookup by service ID and key, if
// a secondary index is being maintained.
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java
index 55242c382..5624b85a1 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java
@@ -22,6 +22,15 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.profile.action.ActionSupport;
+import org.opensaml.profile.action.EventIds;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Predicates;
+
import net.shibboleth.idp.authn.AbstractAuthenticationAction;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.context.SubjectContext;
@@ -31,18 +40,8 @@ import net.shibboleth.idp.session.SessionManager;
import net.shibboleth.idp.session.context.SessionContext;
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 org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.action.ActionSupport;
-import org.opensaml.profile.action.EventIds;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicates;
-
/**
* An authentication action that establishes a record of the {@link net.shibboleth.idp.authn.AuthenticationResult}
* in an {@link IdPSession} for the client, either by updating an existing session or creating a new one.
@@ -97,8 +96,7 @@ public class UpdateSessionWithAuthenticationResult extends AbstractAuthenticatio
* @param manager session manager to use
*/
public void setSessionManager(@Nonnull final SessionManager manager) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
}
@@ -109,8 +107,7 @@ public class UpdateSessionWithAuthenticationResult extends AbstractAuthenticatio
*/
public void setSessionContextCreationStrategy(
@Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionContextCreationStrategy = Constraint.isNotNull(strategy,
"SessionContext lookup/creation strategy cannot be null");
}
@@ -122,8 +119,7 @@ public class UpdateSessionWithAuthenticationResult extends AbstractAuthenticatio
*/
public void setSubjectContextLookupStrategy(
@Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
subjectContextLookupStrategy = Constraint.isNotNull(strategy, "SubjectContext lookup strategy cannot be null");
}
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java
index e06625c50..96c1a7c02 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java
@@ -22,6 +22,15 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.profile.action.ActionSupport;
+import org.opensaml.profile.action.EventIds;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Predicates;
+
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.SPSession;
@@ -30,18 +39,8 @@ import net.shibboleth.idp.session.SessionManager;
import net.shibboleth.idp.session.context.SessionContext;
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 org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.action.ActionSupport;
-import org.opensaml.profile.action.EventIds;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicates;
-
/**
* An action that establishes a record of an {@link SPSession} in an existing {@link IdPSession} for the client.
*
@@ -96,8 +95,7 @@ public class UpdateSessionWithSPSession extends AbstractProfileAction {
* @param manager session manager to use
*/
public void setSessionManager(@Nonnull final SessionManager manager) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
}
@@ -108,8 +106,7 @@ public class UpdateSessionWithSPSession extends AbstractProfileAction {
*/
public void setSessionContextLookupStrategy(
@Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
+ throwSetterPreconditionExceptions();
sessionContextLookupStrategy = Constraint.isNotNull(strategy,
"SessionContext 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