[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