Class ProcessLogoutRequest
java.lang.Object
net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.saml.saml2.profile.impl.ProcessLogoutRequest
- All Implemented Interfaces:
Component
,DestructableComponent
,InitializableComponent
,ProfileAction
,Aware
,MessageSource
,MessageSourceAware
,Action
Profile action that processes a
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()
.
- Event:
EventIds.PROCEED_EVENT_ID
,EventIds.INVALID_PROFILE_CTX
,EventIds.INVALID_MESSAGE
,EventIds.IO_ERROR
,SAMLEventIds.SESSION_NOT_FOUND
- Postcondition:
- If at least one
IdPSession
was found, then aSubjectContext
andLogoutContext
will be populated., If a singleIdPSession
was found, then aSessionContext
will be populated.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
Cached lookup of assertingParty name.private Function<ProfileRequestContext,
String> Optional lookup function for obtaining default NameQualifier.private final org.slf4j.Logger
Class logger.private Function<ProfileRequestContext,
LogoutContext> Creation/lookup function for LogoutContext.private LogoutRequest
LogoutRequest to process.private Function<ProfileRequestContext,
LogoutRequest> Lookup strategy forLogoutRequest
to process.NameID
Formats allowing defaulted qualifiers.private Function<ProfileRequestContext,
Collection<String>> Lookup strategy for obtaining qualifier-defaultable NameID Formats.private String
Cached lookup of relyingParty name.private Function<ProfileRequestContext,
String> Optional lookup function for obtaining default SPNameQualifier.private Function<ProfileRequestContext,
SessionContext> Creation/lookup function for SessionContext.private SessionResolver
Session resolver.private Function<ProfileRequestContext,
CriteriaSet> Function to returnCriteriaSet
to give to session resolver.private Function<ProfileRequestContext,
SubjectContext> Creation/lookup function for SubjectContext. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doExecute
(ProfileRequestContext profileRequestContext) protected void
protected boolean
doPreExecute
(ProfileRequestContext profileRequestContext) private boolean
sessionMatches
(ProfileRequestContext profileRequestContext, IdPSession session) Check if the session contains aSAML2SPSession
with the appropriate service ID and SessionIndex.private boolean
sessionMatches
(ProfileRequestContext profileRequestContext, SPSession session) Check if theSPSession
has the appropriate service ID and SessionIndex.void
Set the lookup strategy to obtain the default IdP NameQualifier.void
Set the creation/lookup strategy for theLogoutContext
to populate.void
Set the lookup strategy for theLogoutRequest
to process.void
setQualifiedNameIDFormatsLookupStrategy
(Function<ProfileRequestContext, Collection<String>> strategy) Set the lookup strategy for theNameID
Formats to allow defaulted qualifiers.void
Set the lookup strategy to obtain the default SPNameQualifier.void
Set the creation/lookup strategy for theSessionContext
to populate.void
setSessionResolver
(SessionResolver resolver) Set theSessionResolver
to use.void
Set the strategy for building theCriteriaSet
to feed into theSessionResolver
.void
Set the creation/lookup strategy for theSubjectContext
to populate.Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getMessage, getMessage, getMessage, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy
Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationCondition
Methods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletResponse, getLogPrefix, setHttpServletRequest, setHttpServletResponse
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, initialize, isDestroyed, isInitialized
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
sessionResolver
Session resolver. -
subjectContextCreationStrategy
Creation/lookup function for SubjectContext. -
sessionContextCreationStrategy
Creation/lookup function for SessionContext. -
logoutContextCreationStrategy
Creation/lookup function for LogoutContext. -
sessionResolverCriteriaStrategy
Function to returnCriteriaSet
to give to session resolver. -
logoutRequestLookupStrategy
Lookup strategy forLogoutRequest
to process. -
qualifiedNameIDFormatsLookupStrategy
@Nonnull private Function<ProfileRequestContext,Collection<String>> qualifiedNameIDFormatsLookupStrategyLookup strategy for obtaining qualifier-defaultable NameID Formats. -
assertingPartyLookupStrategy
Optional lookup function for obtaining default NameQualifier. -
relyingPartyLookupStrategy
Optional lookup function for obtaining default SPNameQualifier. -
logoutRequest
LogoutRequest to process. -
qualifiedNameIDFormats
NameID
Formats allowing defaulted qualifiers. -
assertingParty
Cached lookup of assertingParty name. -
relyingParty
Cached lookup of relyingParty name.
-
-
Constructor Details
-
ProcessLogoutRequest
public ProcessLogoutRequest()Constructor.
-
-
Method Details
-
setSessionResolver
Set theSessionResolver
to use.- Parameters:
resolver
- session resolver to use
-
setSubjectContextCreationStrategy
public void setSubjectContextCreationStrategy(@Nonnull Function<ProfileRequestContext, SubjectContext> strategy) Set the creation/lookup strategy for theSubjectContext
to populate.- Parameters:
strategy
- creation/lookup strategy
-
setSessionContextCreationStrategy
public void setSessionContextCreationStrategy(@Nonnull Function<ProfileRequestContext, SessionContext> strategy) Set the creation/lookup strategy for theSessionContext
to populate.- Parameters:
strategy
- creation/lookup strategy
-
setLogoutContextCreationStrategy
public void setLogoutContextCreationStrategy(@Nonnull Function<ProfileRequestContext, LogoutContext> strategy) Set the creation/lookup strategy for theLogoutContext
to populate.- Parameters:
strategy
- creation/lookup strategy
-
setSessionResolverCriteriaStrategy
public void setSessionResolverCriteriaStrategy(@Nonnull Function<ProfileRequestContext, CriteriaSet> strategy) Set the strategy for building theCriteriaSet
to feed into theSessionResolver
.- Parameters:
strategy
- building strategy
-
setLogoutRequestLookupStrategy
public void setLogoutRequestLookupStrategy(@Nonnull Function<ProfileRequestContext, LogoutRequest> strategy) Set the lookup strategy for theLogoutRequest
to process.- Parameters:
strategy
- lookup strategy
-
setQualifiedNameIDFormatsLookupStrategy
public void setQualifiedNameIDFormatsLookupStrategy(@Nonnull Function<ProfileRequestContext, Collection<String>> strategy) Set the lookup strategy for theNameID
Formats to allow defaulted qualifiers.- Parameters:
strategy
- lookup strategy- Since:
- 3.4.0
-
setAssertingPartyLookupStrategy
public void setAssertingPartyLookupStrategy(@Nullable Function<ProfileRequestContext, String> strategy) Set the lookup strategy to obtain the default IdP NameQualifier.- Parameters:
strategy
- lookup strategy- Since:
- 3.4.0
-
setRelyingPartyLookupStrategy
public void setRelyingPartyLookupStrategy(@Nullable Function<ProfileRequestContext, String> strategy) Set the lookup strategy to obtain the default SPNameQualifier.- Parameters:
strategy
- lookup strategy- Since:
- 3.4.0
-
doInitialize
- Overrides:
doInitialize
in classAbstractInitializableComponent
- Throws:
ComponentInitializationException
-
doPreExecute
- Overrides:
doPreExecute
in classAbstractConditionalProfileAction
-
doExecute
- Overrides:
doExecute
in classAbstractProfileAction
-
sessionMatches
private boolean sessionMatches(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull IdPSession session) Check if the session contains aSAML2SPSession
with the appropriate service ID and SessionIndex.- Parameters:
profileRequestContext
- current profile request contextsession
-IdPSession
to check- Returns:
- true iff the set of
SPSession
s includes one applicable to the logout request
-
sessionMatches
private boolean sessionMatches(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull SPSession session) Check if theSPSession
has the appropriate service ID and SessionIndex.
-