[java-identity-provider COMMIT] in /trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl: ExtractActi...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Jul 29 14:45:56 EDT 2014
Author: scantor
Date: Tue Jul 29 14:45:56 2014
New Revision: 6354
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6354&view=rev
Log:
Add lookup functions to session actions.
Modified:
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/InvalidateSessionOnIdentitySwitch.java
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java
Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java?rev=6354&r1=6353&r2=6354&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java (original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java Tue Jul 29 14:45:56 2014
@@ -28,13 +28,16 @@
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;
+import com.google.common.base.Function;
import com.google.common.collect.Lists;
-
/**
* An authentication action that populates a {@link AuthenticationContext} with the active
@@ -50,15 +53,36 @@
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(ExtractActiveAuthenticationResults.class);
+ /** Lookup function for SessionContext. */
+ @Nonnull private Function<ProfileRequestContext,SessionContext> sessionContextLookupStrategy;
+
/** Session to copy results from. */
@Nullable private IdPSession session;
+
+ /** Constructor. */
+ public ExtractActiveAuthenticationResults() {
+ sessionContextLookupStrategy = new ChildContextLookup<>(SessionContext.class);
+ }
+
+ /**
+ * Set the lookup strategy for the SessionContext to access.
+ *
+ * @param strategy lookup strategy
+ */
+ public void setSessionContextLookupStrategy(
+ @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
+ sessionContextLookupStrategy = Constraint.isNotNull(strategy,
+ "SessionContext lookup strategy cannot be null");
+ }
/** {@inheritDoc} */
@Override
protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext,
@Nonnull final AuthenticationContext authenticationContext) {
- final SessionContext ctx = profileRequestContext.getSubcontext(SessionContext.class, false);
+ final SessionContext ctx = sessionContextLookupStrategy.apply(profileRequestContext);
if (ctx != null) {
session = ctx.getIdPSession();
if (session != null) {
Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/InvalidateSessionOnIdentitySwitch.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/InvalidateSessionOnIdentitySwitch.java?rev=6354&r1=6353&r2=6354&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/InvalidateSessionOnIdentitySwitch.java (original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/InvalidateSessionOnIdentitySwitch.java Tue Jul 29 14:45:56 2014
@@ -34,11 +34,14 @@
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.Function;
/**
* An authentication action that checks for a mismatch between an existing session's identity and
@@ -64,11 +67,23 @@
/** SessionManager. */
@NonnullAfterInit private SessionManager sessionManager;
[... 367 lines stripped ...]
More information about the commits
mailing list