[java-identity-provider COMMIT] in /trunk: idp-session-api/src/main/java/net/shibboleth/idp/session/context/LogoutPro...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Nov 6 15:21:12 EST 2015
Author: serac
Date: Fri Nov 6 15:21:12 2015
New Revision: 7957
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7957&view=rev
Log:
IDP-224 Add session key to LogoutPropagationContext.
The session key used to index the session in LogoutContext#getKeyedSessionMap
must be available to technology-specific propagation flows, and storing it
in the LPC is an obvious solution.
Modified:
trunk/idp-session-api/src/main/java/net/shibboleth/idp/session/context/LogoutPropagationContext.java
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java
Modified: trunk/idp-session-api/src/main/java/net/shibboleth/idp/session/context/LogoutPropagationContext.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-api/src/main/java/net/shibboleth/idp/session/context/LogoutPropagationContext.java?rev=7957&r1=7956&r2=7957&view=diff
==============================================================================
--- trunk/idp-session-api/src/main/java/net/shibboleth/idp/session/context/LogoutPropagationContext.java (original)
+++ trunk/idp-session-api/src/main/java/net/shibboleth/idp/session/context/LogoutPropagationContext.java Fri Nov 6 15:21:12 2015
@@ -43,6 +43,9 @@
/** SP session to be destroyed. */
@Nullable private SPSession session;
+ /** Session key. */
+ @Nullable private String sessionKey;
+
/** Result of logout propagation flow. */
@Nonnull private Result result = Result.Failure;
@@ -65,6 +68,24 @@
*/
public void setSession(@Nullable final SPSession theSession) {
session = theSession;
+ }
+
+ /**
+ * Gets the key under which the {@link SPSession} was stored in {@link LogoutContext#getKeyedSessionMap()}.
+ *
+ * @return Session key.
+ */
+ @Nullable public String getSessionKey() {
+ return sessionKey;
+ }
+
+ /**
+ * Sets the key under which the {@link SPSession} was stored in {@link LogoutContext#getKeyedSessionMap()}.
+ *
+ * @param key Session key.
+ */
+ public void setSessionKey(final @Nullable String key) {
+ this.sessionKey = key;
}
/**
Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java?rev=7957&r1=7956&r2=7957&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java (original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java Fri Nov 6 15:21:12 2015
@@ -84,7 +84,11 @@
/** {@link SPSession} to operate on. */
@Nullable private SPSession session;
-
+
+ /** The value used to look up a session by reference. */
+ @Nullable private String sessionKey;
+
+
/** Constructor. */
public PopulateLogoutPropagationContext() {
contextCreationStrategy = new ChildContextLookup<>(LogoutPropagationContext.class, true);
@@ -156,7 +160,8 @@
final String sessionVal = requestContext.getRequestParameters().get(SESSION_PARAM_BYVAL);
try {
if (sessionRef != null) {
- session = getSessionByReference(requestContext, sessionRef);
+ sessionKey = sessionRef;
+ session = getSessionByReference(requestContext, sessionKey);
} else if (sessionVal != null) {
session = getSessionByValue(sessionVal);
} else {
@@ -164,6 +169,7 @@
ActionSupport.buildEvent(profileRequestContext, EventIds.UNABLE_TO_DECODE);
return false;
}
+ log.debug("{} Got session to propagate logout: {}", getLogPrefix(), session);
} catch (MessageDecodingException e) {
log.warn("{} Message decoding exception: {}", e.getMessage());
ActionSupport.buildEvent(profileRequestContext, EventIds.UNABLE_TO_DECODE);
@@ -187,6 +193,7 @@
return;
}
logoutPropCtx.setSession(session);
+ logoutPropCtx.setSessionKey(sessionKey);
}
/**
More information about the commits
mailing list