Class ProcessLogoutInitiatorRequest

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.sp.profile.AbstractAgentRequestAction
net.shibboleth.sp.profile.AbstractAgentAction
net.shibboleth.sp.profile.AbstractApplicationAction
net.shibboleth.sp.oidc.profile.impl.ProcessLogoutInitiatorRequest
All Implemented Interfaces:
net.shibboleth.shared.component.Component, net.shibboleth.shared.component.DestructableComponent, net.shibboleth.shared.component.InitializableComponent, org.opensaml.profile.action.ProfileAction, Aware, MessageSource, MessageSourceAware, Action

public class ProcessLogoutInitiatorRequest extends net.shibboleth.sp.profile.AbstractApplicationAction
Processes a request to potentially initiate a OIDC RP-Initiated logout by examining the input to recover the required id_token information from the opaque portion of the session created by the token consumer flow and store in a newly created OIDCLogoutContext.

Assuming the opaque data is present and sufficient, it also creates a RelyingPartyContext based on the identity of the original OP that issued the id_token that led to the session.

If the data sealer is enabled, the the id_token is first unsealed.

Event:
EventIds.PROCEED_EVENT_ID, EventIds.INVALID_MESSAGE, EventIds.UNABLE_TO_DECODE, IdPEventIds.INVALID_RELYING_PARTY_CTX
Postcondition:
profileRequestContext.getSubcontext(OIDCLogoutContext.class) != null
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private net.shibboleth.shared.security.DataSealer
    Optional data sealer to use.
    private com.nimbusds.jwt.JWT
    The id_token take from the data in the session.
    private final org.slf4j.Logger
    Class logger.
    private Function<org.opensaml.profile.context.ProfileRequestContext,net.shibboleth.profile.context.RelyingPartyContext>
    Creation strategy for RelyingPartyContext.
    private String
    The relying party name to base the inbound context on.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    doExecute(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
    protected boolean
    doPreExecute(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
    void
    setDataSealer(net.shibboleth.shared.security.DataSealer sealer)
    Sets DataSealer to use.
    void
    setRelyingPartyContextCreationStrategy(Function<org.opensaml.profile.context.ProfileRequestContext,net.shibboleth.profile.context.RelyingPartyContext> strategy)
    Set strategy to create the RelyingPartyContext.

    Methods inherited from class net.shibboleth.sp.profile.AbstractApplicationAction

    ensureApplication, getApplication

    Methods inherited from class net.shibboleth.sp.profile.AbstractAgentAction

    ensureAgent, getAgent

    Methods inherited from class net.shibboleth.sp.profile.AbstractAgentRequestAction

    ensureAgentRequestContext, getAgentRequestContext, setAgentRequestContextLookupStrategy

    Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction

    doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, 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, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplier

    Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

    checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, 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.shared.component.InitializableComponent

    initialize, isInitialized
  • Field Details

    • log

      @Nonnull private final org.slf4j.Logger log
      Class logger.
    • relyingPartyContextCreationStrategy

      @Nonnull private Function<org.opensaml.profile.context.ProfileRequestContext,net.shibboleth.profile.context.RelyingPartyContext> relyingPartyContextCreationStrategy
      Creation strategy for RelyingPartyContext.
    • idToken

      @NonnullBeforeExec private com.nimbusds.jwt.JWT idToken
      The id_token take from the data in the session.
    • relyingPartyId

      @NonnullBeforeExec private String relyingPartyId
      The relying party name to base the inbound context on.
    • dataSealer

      @Nullable private net.shibboleth.shared.security.DataSealer dataSealer
      Optional data sealer to use.
  • Constructor Details

    • ProcessLogoutInitiatorRequest

      public ProcessLogoutInitiatorRequest()
      Constructor.
  • Method Details

    • setDataSealer

      public void setDataSealer(@Nullable net.shibboleth.shared.security.DataSealer sealer)
      Sets DataSealer to use.
      Parameters:
      sealer - data sealer
    • setRelyingPartyContextCreationStrategy

      public void setRelyingPartyContextCreationStrategy(@Nonnull Function<org.opensaml.profile.context.ProfileRequestContext,net.shibboleth.profile.context.RelyingPartyContext> strategy)
      Set strategy to create the RelyingPartyContext.
      Parameters:
      strategy - creation strategy
    • doPreExecute

      protected boolean doPreExecute(@Nonnull org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
      Overrides:
      doPreExecute in class net.shibboleth.sp.profile.AbstractApplicationAction
    • doExecute

      protected void doExecute(@Nonnull org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
      Overrides:
      doExecute in class org.opensaml.profile.action.AbstractProfileAction