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
public class ProcessLogoutRequest extends AbstractProfileAction
Profile action that processes aLogoutRequestby resolving matching sessions, and destroys them, populating the associatedSPSessionobjects (excepting the one initiating the logout) into aLogoutContext.A
SubjectContextis also populated. If and only if a singleIdPSessionis resolved, aSessionContextis also populated.Each
SPSessionis also assigned a unique number and inserted into the map returned byLogoutContext.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
IdPSessionwas found, then aSubjectContextandLogoutContextwill be populated., If a singleIdPSessionwas found, then aSessionContextwill be populated.
-
-
Field Summary
Fields Modifier and Type Field Description private StringassertingPartyCached lookup of assertingParty name.private Function<ProfileRequestContext,String>assertingPartyLookupStrategyOptional lookup function for obtaining default NameQualifier.private org.slf4j.LoggerlogClass logger.private Function<ProfileRequestContext,LogoutContext>logoutContextCreationStrategyCreation/lookup function for LogoutContext.private LogoutRequestlogoutRequestLogoutRequest to process.private Function<ProfileRequestContext,LogoutRequest>logoutRequestLookupStrategyLookup strategy forLogoutRequestto process.private Set<String>qualifiedNameIDFormatsNameIDFormats allowing defaulted qualifiers.private Function<ProfileRequestContext,Collection<String>>qualifiedNameIDFormatsLookupStrategyLookup strategy for obtaining qualifier-defaultable NameID Formats.private StringrelyingPartyCached lookup of relyingParty name.private Function<ProfileRequestContext,String>relyingPartyLookupStrategyOptional lookup function for obtaining default SPNameQualifier.private Function<ProfileRequestContext,SessionContext>sessionContextCreationStrategyCreation/lookup function for SessionContext.private SessionResolversessionResolverSession resolver.private Function<ProfileRequestContext,CriteriaSet>sessionResolverCriteriaStrategyFunction to returnCriteriaSetto give to session resolver.private Function<ProfileRequestContext,SubjectContext>subjectContextCreationStrategyCreation/lookup function for SubjectContext.
-
Constructor Summary
Constructors Constructor Description ProcessLogoutRequest()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddoExecute(ProfileRequestContext profileRequestContext)protected voiddoInitialize()protected booleandoPreExecute(ProfileRequestContext profileRequestContext)private booleansessionMatches(ProfileRequestContext profileRequestContext, IdPSession session)Check if the session contains aSAML2SPSessionwith the appropriate service ID and SessionIndex.private booleansessionMatches(ProfileRequestContext profileRequestContext, SPSession session)Check if theSPSessionhas the appropriate service ID and SessionIndex.voidsetAssertingPartyLookupStrategy(Function<ProfileRequestContext,String> strategy)Set the lookup strategy to obtain the default IdP NameQualifier.voidsetLogoutContextCreationStrategy(Function<ProfileRequestContext,LogoutContext> strategy)Set the creation/lookup strategy for theLogoutContextto populate.voidsetLogoutRequestLookupStrategy(Function<ProfileRequestContext,LogoutRequest> strategy)Set the lookup strategy for theLogoutRequestto process.voidsetQualifiedNameIDFormatsLookupStrategy(Function<ProfileRequestContext,Collection<String>> strategy)Set the lookup strategy for theNameIDFormats to allow defaulted qualifiers.voidsetRelyingPartyLookupStrategy(Function<ProfileRequestContext,String> strategy)Set the lookup strategy to obtain the default SPNameQualifier.voidsetSessionContextCreationStrategy(Function<ProfileRequestContext,SessionContext> strategy)Set the creation/lookup strategy for theSessionContextto populate.voidsetSessionResolver(SessionResolver resolver)Set theSessionResolverto use.voidsetSessionResolverCriteriaStrategy(Function<ProfileRequestContext,CriteriaSet> strategy)Set the strategy for building theCriteriaSetto feed into theSessionResolver.voidsetSubjectContextCreationStrategy(Function<ProfileRequestContext,SubjectContext> strategy)Set the creation/lookup strategy for theSubjectContextto 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 Detail
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
sessionResolver
@NonnullAfterInit private SessionResolver sessionResolver
Session resolver.
-
subjectContextCreationStrategy
@Nonnull private Function<ProfileRequestContext,SubjectContext> subjectContextCreationStrategy
Creation/lookup function for SubjectContext.
-
sessionContextCreationStrategy
@Nonnull private Function<ProfileRequestContext,SessionContext> sessionContextCreationStrategy
Creation/lookup function for SessionContext.
-
logoutContextCreationStrategy
@Nonnull private Function<ProfileRequestContext,LogoutContext> logoutContextCreationStrategy
Creation/lookup function for LogoutContext.
-
sessionResolverCriteriaStrategy
@Nonnull private Function<ProfileRequestContext,CriteriaSet> sessionResolverCriteriaStrategy
Function to returnCriteriaSetto give to session resolver.
-
logoutRequestLookupStrategy
@Nonnull private Function<ProfileRequestContext,LogoutRequest> logoutRequestLookupStrategy
Lookup strategy forLogoutRequestto process.
-
qualifiedNameIDFormatsLookupStrategy
@Nonnull private Function<ProfileRequestContext,Collection<String>> qualifiedNameIDFormatsLookupStrategy
Lookup strategy for obtaining qualifier-defaultable NameID Formats.
-
assertingPartyLookupStrategy
@Nullable private Function<ProfileRequestContext,String> assertingPartyLookupStrategy
Optional lookup function for obtaining default NameQualifier.
-
relyingPartyLookupStrategy
@Nullable private Function<ProfileRequestContext,String> relyingPartyLookupStrategy
Optional lookup function for obtaining default SPNameQualifier.
-
logoutRequest
@Nullable private LogoutRequest logoutRequest
LogoutRequest to process.
-
qualifiedNameIDFormats
@Nonnull private Set<String> qualifiedNameIDFormats
NameIDFormats allowing defaulted qualifiers.
-
assertingParty
@Nullable private String assertingParty
Cached lookup of assertingParty name.
-
relyingParty
@Nullable private String relyingParty
Cached lookup of relyingParty name.
-
-
Method Detail
-
setSessionResolver
public void setSessionResolver(@Nonnull SessionResolver resolver)Set theSessionResolverto use.- Parameters:
resolver- session resolver to use
-
setSubjectContextCreationStrategy
public void setSubjectContextCreationStrategy(@Nonnull Function<ProfileRequestContext,SubjectContext> strategy)Set the creation/lookup strategy for theSubjectContextto populate.- Parameters:
strategy- creation/lookup strategy
-
setSessionContextCreationStrategy
public void setSessionContextCreationStrategy(@Nonnull Function<ProfileRequestContext,SessionContext> strategy)Set the creation/lookup strategy for theSessionContextto populate.- Parameters:
strategy- creation/lookup strategy
-
setLogoutContextCreationStrategy
public void setLogoutContextCreationStrategy(@Nonnull Function<ProfileRequestContext,LogoutContext> strategy)Set the creation/lookup strategy for theLogoutContextto populate.- Parameters:
strategy- creation/lookup strategy
-
setSessionResolverCriteriaStrategy
public void setSessionResolverCriteriaStrategy(@Nonnull Function<ProfileRequestContext,CriteriaSet> strategy)Set the strategy for building theCriteriaSetto feed into theSessionResolver.- Parameters:
strategy- building strategy
-
setLogoutRequestLookupStrategy
public void setLogoutRequestLookupStrategy(@Nonnull Function<ProfileRequestContext,LogoutRequest> strategy)Set the lookup strategy for theLogoutRequestto process.- Parameters:
strategy- lookup strategy
-
setQualifiedNameIDFormatsLookupStrategy
public void setQualifiedNameIDFormatsLookupStrategy(@Nonnull Function<ProfileRequestContext,Collection<String>> strategy)Set the lookup strategy for theNameIDFormats 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
protected void doInitialize() throws ComponentInitializationException- Overrides:
doInitializein classAbstractInitializableComponent- Throws:
ComponentInitializationException
-
doPreExecute
protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)- Overrides:
doPreExecutein classAbstractConditionalProfileAction
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)- Overrides:
doExecutein classAbstractProfileAction
-
sessionMatches
private boolean sessionMatches(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull IdPSession session)Check if the session contains aSAML2SPSessionwith the appropriate service ID and SessionIndex.- Parameters:
profileRequestContext- current profile request contextsession-IdPSessionto check- Returns:
- true iff the set of
SPSessions includes one applicable to the logout request
-
sessionMatches
private boolean sessionMatches(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull SPSession session)Check if theSPSessionhas the appropriate service ID and SessionIndex.
-
-