public class ProcessLogoutRequest extends AbstractProfileAction
LogoutRequest by resolving matching sessions, and destroys them,
populating the associated SPSession objects (excepting the one initiating the logout) into a
LogoutContext.
A SubjectContext is also populated. If and only if a single IdPSession is resolved,
a SessionContext is also populated.
Each SPSession is also assigned a unique number and inserted into the map
returned by LogoutContext.getKeyedSessionMap().
EventIds.PROCEED_EVENT_ID, EventIds.INVALID_PROFILE_CTX, EventIds.INVALID_MESSAGE, EventIds.IO_ERROR, SAMLEventIds.SESSION_NOT_FOUNDIdPSession was found, then a SubjectContext and LogoutContext will be populated., If a single IdPSession was found, then a SessionContext will be populated.| Modifier and Type | Field and Description |
|---|---|
private String |
assertingParty
Cached lookup of assertingParty name.
|
private com.google.common.base.Function<ProfileRequestContext,String> |
assertingPartyLookupStrategy
Optional lookup function for obtaining default NameQualifier.
|
private org.slf4j.Logger |
log
Class logger.
|
private com.google.common.base.Function<ProfileRequestContext,net.shibboleth.idp.session.context.LogoutContext> |
logoutContextCreationStrategy
Creation/lookup function for LogoutContext.
|
private LogoutRequest |
logoutRequest
LogoutRequest to process.
|
private com.google.common.base.Function<ProfileRequestContext,LogoutRequest> |
logoutRequestLookupStrategy
Lookup strategy for
LogoutRequest to process. |
private Set<String> |
qualifiedNameIDFormats
NameID Formats allowing defaulted qualifiers. |
private com.google.common.base.Function<ProfileRequestContext,Collection<String>> |
qualifiedNameIDFormatsLookupStrategy
Lookup strategy for obtaining qualifier-defaultable NameID Formats.
|
private String |
relyingParty
Cached lookup of relyingParty name.
|
private com.google.common.base.Function<ProfileRequestContext,String> |
relyingPartyLookupStrategy
Optional lookup function for obtaining default SPNameQualifier.
|
private com.google.common.base.Function<ProfileRequestContext,net.shibboleth.idp.session.context.SessionContext> |
sessionContextCreationStrategy
Creation/lookup function for SessionContext.
|
private net.shibboleth.idp.session.SessionManager |
sessionManager
Session manager.
|
private net.shibboleth.idp.session.SessionResolver |
sessionResolver
Session resolver.
|
private com.google.common.base.Function<ProfileRequestContext,CriteriaSet> |
sessionResolverCriteriaStrategy
Function to return
CriteriaSet to give to session resolver. |
private com.google.common.base.Function<ProfileRequestContext,SubjectContext> |
subjectContextCreationStrategy
Creation/lookup function for SubjectContext.
|
| Constructor and Description |
|---|
ProcessLogoutRequest()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
doExecute(ProfileRequestContext profileRequestContext) |
protected void |
doInitialize() |
protected boolean |
doPreExecute(ProfileRequestContext profileRequestContext) |
private boolean |
sessionMatches(ProfileRequestContext profileRequestContext,
net.shibboleth.idp.session.IdPSession session)
Check if the session contains a
SAML2SPSession with the appropriate service ID and SessionIndex. |
private boolean |
sessionMatches(ProfileRequestContext profileRequestContext,
net.shibboleth.idp.session.SPSession session)
Check if the
SPSession has the appropriate service ID and SessionIndex. |
void |
setAssertingPartyLookupStrategy(com.google.common.base.Function<ProfileRequestContext,String> strategy)
Set the lookup strategy to obtain the default IdP NameQualifier.
|
void |
setLogoutContextCreationStrategy(com.google.common.base.Function<ProfileRequestContext,net.shibboleth.idp.session.context.LogoutContext> strategy)
Set the creation/lookup strategy for the
LogoutContext to populate. |
void |
setLogoutRequestLookupStrategy(com.google.common.base.Function<ProfileRequestContext,LogoutRequest> strategy)
Set the lookup strategy for the
LogoutRequest to process. |
void |
setQualifiedNameIDFormatsLookupStrategy(com.google.common.base.Function<ProfileRequestContext,Collection<String>> strategy)
Set the lookup strategy for the
NameID Formats to allow defaulted qualifiers. |
void |
setRelyingPartyLookupStrategy(com.google.common.base.Function<ProfileRequestContext,String> strategy)
Set the lookup strategy to obtain the default SPNameQualifier.
|
void |
setSessionContextCreationStrategy(com.google.common.base.Function<ProfileRequestContext,net.shibboleth.idp.session.context.SessionContext> strategy)
Set the creation/lookup strategy for the
SessionContext to populate. |
void |
setSessionManager(net.shibboleth.idp.session.SessionManager manager)
Set the
SessionManager to use. |
void |
setSessionResolver(net.shibboleth.idp.session.SessionResolver resolver)
Set the
SessionResolver to use. |
void |
setSessionResolverCriteriaStrategy(com.google.common.base.Function<ProfileRequestContext,CriteriaSet> strategy)
Set the strategy for building the
CriteriaSet to feed into the SessionResolver. |
void |
setSubjectContextCreationStrategy(com.google.common.base.Function<ProfileRequestContext,SubjectContext> strategy)
Set the creation/lookup strategy for the
SubjectContext to populate. |
doExecute, execute, getMessage, getMessage, getMessage, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategygetActivationCondition, setActivationConditiondoPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletResponse, getLogPrefix, setHttpServletRequest, setHttpServletResponsedestroy, doDestroy, initialize, isDestroyed, isInitializedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitinitialize, isInitialized@Nonnull private final org.slf4j.Logger log
@NonnullAfterInit private net.shibboleth.idp.session.SessionResolver sessionResolver
@NonnullAfterInit private net.shibboleth.idp.session.SessionManager sessionManager
@Nonnull private com.google.common.base.Function<ProfileRequestContext,SubjectContext> subjectContextCreationStrategy
@Nonnull private com.google.common.base.Function<ProfileRequestContext,net.shibboleth.idp.session.context.SessionContext> sessionContextCreationStrategy
@Nonnull private com.google.common.base.Function<ProfileRequestContext,net.shibboleth.idp.session.context.LogoutContext> logoutContextCreationStrategy
@Nonnull private com.google.common.base.Function<ProfileRequestContext,CriteriaSet> sessionResolverCriteriaStrategy
CriteriaSet to give to session resolver.@Nonnull private com.google.common.base.Function<ProfileRequestContext,LogoutRequest> logoutRequestLookupStrategy
LogoutRequest to process.@Nonnull private com.google.common.base.Function<ProfileRequestContext,Collection<String>> qualifiedNameIDFormatsLookupStrategy
@Nullable private com.google.common.base.Function<ProfileRequestContext,String> assertingPartyLookupStrategy
@Nullable private com.google.common.base.Function<ProfileRequestContext,String> relyingPartyLookupStrategy
@Nullable private LogoutRequest logoutRequest
@Nonnull private Set<String> qualifiedNameIDFormats
NameID Formats allowing defaulted qualifiers.public void setSessionResolver(@Nonnull net.shibboleth.idp.session.SessionResolver resolver)
SessionResolver to use.resolver - session resolver to usepublic void setSessionManager(@Nonnull net.shibboleth.idp.session.SessionManager manager)
SessionManager to use.manager - session manager to usepublic void setSubjectContextCreationStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,SubjectContext> strategy)
SubjectContext to populate.strategy - creation/lookup strategypublic void setSessionContextCreationStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,net.shibboleth.idp.session.context.SessionContext> strategy)
SessionContext to populate.strategy - creation/lookup strategypublic void setLogoutContextCreationStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,net.shibboleth.idp.session.context.LogoutContext> strategy)
LogoutContext to populate.strategy - creation/lookup strategypublic void setSessionResolverCriteriaStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,CriteriaSet> strategy)
CriteriaSet to feed into the SessionResolver.strategy - building strategypublic void setLogoutRequestLookupStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,LogoutRequest> strategy)
LogoutRequest to process.strategy - lookup strategypublic void setQualifiedNameIDFormatsLookupStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,Collection<String>> strategy)
NameID Formats to allow defaulted qualifiers.strategy - lookup strategypublic void setAssertingPartyLookupStrategy(@Nullable com.google.common.base.Function<ProfileRequestContext,String> strategy)
strategy - lookup strategypublic void setRelyingPartyLookupStrategy(@Nullable com.google.common.base.Function<ProfileRequestContext,String> strategy)
strategy - lookup strategyprotected void doInitialize()
throws ComponentInitializationException
doInitialize in class AbstractInitializableComponentComponentInitializationExceptionprotected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)
doPreExecute in class AbstractConditionalProfileActionprotected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)
doExecute in class AbstractProfileActionprivate boolean sessionMatches(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull net.shibboleth.idp.session.IdPSession session)
SAML2SPSession with the appropriate service ID and SessionIndex.profileRequestContext - current profile request contextsession - IdPSession to checkSPSessions includes one applicable to the logout requestprivate boolean sessionMatches(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull net.shibboleth.idp.session.SPSession session)
SPSession has the appropriate service ID and SessionIndex.profileRequestContext - current profile request contextsession - SPSession to checkSPSession directly matches the logout requestCopyright © 1999–2018 Shibboleth Consortium. All rights reserved.