Class ProcessRpInitiatedLogoutRequest
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.plugin.oidc.op.profile.impl.AbstractOIDCRequestAction<LogoutRequest>
net.shibboleth.idp.plugin.oidc.op.logout.profile.impl.AbstractOIDCRpInitiatedLogoutAction
net.shibboleth.idp.plugin.oidc.op.logout.profile.impl.ProcessRpInitiatedLogoutRequest
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
Profile action that processes
LogoutRequest and OIDCRpInitiatedLogoutContext by resolving matching
sessions and populating the associated SPSession objects into a LogoutContext. The session that
initiated the process is included in the context only if OIDCRPSession.supportsLogoutPropagation()
returns true.
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,OidcEventIds.SESSION_NOT_FOUND- Postcondition:
- If at least one
IdPSessionwas found, then aSubjectContextandLogoutContextwill be populated., If a singleIdPSessionwas found, then aSessionContextwill be populated.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Function<ProfileRequestContext,ClientID> Lookup function for issuer.private final org.slf4j.LoggerClass logger.private Function<ProfileRequestContext,LogoutContext> Creation/lookup function for LogoutContext.private Function<ProfileRequestContext,BiPredicate<String, SPSession>> Lookup function for the RP-initiated logout's logout_hint parameter matching against SPSession.private Predicate<ProfileRequestContext>Condition for requiring matching session to be found.private Function<ProfileRequestContext,SessionContext> Creation/lookup function for SessionContext.private SessionResolverSession resolver.private Function<ProfileRequestContext,CriteriaSet> Function to returnCriteriaSetto give to session resolver.private Function<ProfileRequestContext,SubjectContext> Creation/lookup function for SubjectContext. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoExecute(ProfileRequestContext profileRequestContext) protected voidprivate booleansessionMatches(ProfileRequestContext profileRequestContext, IdPSession session) Check if the session contains aOIDCRPSessionwith the appropriate service ID and SessionIndex.private booleansessionMatches(ProfileRequestContext profileRequestContext, SPSession session) Check if theOIDCRPSessionhas the appropriate service ID and SessionIndex.voidSet the issuer lookup strategy.voidSet the creation/lookup strategy for theLogoutContextto populate.voidsetLogoutHintMatchingStrategyLookupStrategy(Function<ProfileRequestContext, BiPredicate<String, SPSession>> strategy) Set the lookup function to the RP-initiated logout's logout_hint parameter matching against SPSession.voidsetRequireSessionCondition(Predicate<ProfileRequestContext> predicate) Set the condition for requiring matching session to be found.voidSet the creation/lookup strategy for theSessionContextto populate.voidsetSessionResolver(SessionResolver resolver) Set theSessionResolverto use.voidSet the strategy for building theCriteriaSetto feed into theSessionResolver.voidSet the creation/lookup strategy for theSubjectContextto populate.Methods inherited from class net.shibboleth.idp.plugin.oidc.op.logout.profile.impl.AbstractOIDCRpInitiatedLogoutAction
doPreExecute, getLogoutRequest, getMetadataContext, getRpInitiatedLogoutContext, setOIDCMetadataContextLookupStrategy, setOIDCRpInitatedLogoutCtxLookupStrategyMethods inherited from class net.shibboleth.idp.plugin.oidc.op.profile.impl.AbstractOIDCRequestAction
getRequestMethods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategyMethods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationConditionMethods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplierMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.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. -
issuerLookupStrategy
Lookup function for issuer. -
sessionResolverCriteriaStrategy
Function to returnCriteriaSetto give to session resolver. -
logoutHintMatchingStrategyLookupStrategy
@Nonnull private Function<ProfileRequestContext,BiPredicate<String, logoutHintMatchingStrategyLookupStrategySPSession>> Lookup function for the RP-initiated logout's logout_hint parameter matching against SPSession. -
requireSessionCondition
Condition for requiring matching session to be found.
-
-
Constructor Details
-
ProcessRpInitiatedLogoutRequest
public ProcessRpInitiatedLogoutRequest()Constructor.
-
-
Method Details
-
setSessionResolver
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
-
setIssuerLookupStrategy
Set the issuer lookup strategy.- Parameters:
strategy- lookup strategy
-
setSessionResolverCriteriaStrategy
public void setSessionResolverCriteriaStrategy(@Nonnull Function<ProfileRequestContext, CriteriaSet> strategy) Set the strategy for building theCriteriaSetto feed into theSessionResolver.- Parameters:
strategy- building strategy
-
setLogoutHintMatchingStrategyLookupStrategy
public void setLogoutHintMatchingStrategyLookupStrategy(@Nonnull Function<ProfileRequestContext, BiPredicate<String, SPSession>> strategy) Set the lookup function to the RP-initiated logout's logout_hint parameter matching against SPSession.- Parameters:
strategy- lookup strategy
-
setRequireSessionCondition
Set the condition for requiring matching session to be found.- Parameters:
predicate- condition- Since:
- 4.3.1
-
doInitialize
- Overrides:
doInitializein classAbstractInitializableComponent- Throws:
ComponentInitializationException
-
doExecute
- Overrides:
doExecutein classAbstractProfileAction
-
sessionMatches
private boolean sessionMatches(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull IdPSession session) Check if the session contains aOIDCRPSessionwith 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 theOIDCRPSessionhas the appropriate service ID and SessionIndex.
-