Class InitializeLogoutRequest

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.oidc.profile.impl.InitializeLogoutRequest
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 InitializeLogoutRequest extends net.shibboleth.idp.profile.AbstractProfileAction
An action that creates an OIDCLogoutRequest shell to populate in future steps, and sets it to the outbound message context.

When creating the shell, the logout endpoint of the OpenID Provider is resolved, typically from metadata.. If no metadata is found, or the logout endpoint is not set, an error event will be emitted. If there is nowhere to send the request, there is no point in trying to build it.

Event:
EventIds.PROCEED_EVENT_ID, IdPEventIds.INVALID_PROFILE_CONFIG, OidcEventIds.MISSING_END_SESSION_ENDPOINT
Postcondition:
Add an OIDCLogoutRequest as the message of the outbound context.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final org.slf4j.Logger
    Class logger.
    private Function<org.opensaml.profile.context.ProfileRequestContext,URI>
    Strategy to find the logout endpoint.
    private org.opensaml.messaging.context.MessageContext
    The stashed outbound message context.
    private Function<org.opensaml.profile.context.ProfileRequestContext,net.shibboleth.profile.context.RelyingPartyContext>
    Strategy function for access to RelyingPartyContext.
    private String
    Optional RP name for logging.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    doExecute(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
     
    protected void
    protected boolean
    doPreExecute(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
     
    void
    setLogoutEndpointLookupStrategy(Function<org.opensaml.profile.context.ProfileRequestContext,URI> strategy)
    Set the strategy used to locate the logout endpoint URI.
    void
    setRelyingPartyContextLookupStrategy(Function<org.opensaml.profile.context.ProfileRequestContext,net.shibboleth.profile.context.RelyingPartyContext> strategy)
    Set lookup strategy for RelyingPartyContext.

    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, 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.
    • relyingPartyContextLookupStrategy

      @Nonnull private Function<org.opensaml.profile.context.ProfileRequestContext,net.shibboleth.profile.context.RelyingPartyContext> relyingPartyContextLookupStrategy
      Strategy function for access to RelyingPartyContext.
    • logoutEndpointLookupStrategy

      @NonnullAfterInit private Function<org.opensaml.profile.context.ProfileRequestContext,URI> logoutEndpointLookupStrategy
      Strategy to find the logout endpoint. Typically taken from the OP's metadata, but can come via other means.
    • outMessageContext

      @NonnullBeforeExec private org.opensaml.messaging.context.MessageContext outMessageContext
      The stashed outbound message context.
    • relyingPartyId

      @Nullable private String relyingPartyId
      Optional RP name for logging.
  • Constructor Details

    • InitializeLogoutRequest

      public InitializeLogoutRequest()
      Constructor.
  • Method Details

    • doInitialize

      protected void doInitialize() throws net.shibboleth.shared.component.ComponentInitializationException
      Overrides:
      doInitialize in class net.shibboleth.shared.component.AbstractInitializableComponent
      Throws:
      net.shibboleth.shared.component.ComponentInitializationException
    • setLogoutEndpointLookupStrategy

      public void setLogoutEndpointLookupStrategy(@Nonnull Function<org.opensaml.profile.context.ProfileRequestContext,URI> strategy)
      Set the strategy used to locate the logout endpoint URI.
      Parameters:
      strategy - the strategy.
    • setRelyingPartyContextLookupStrategy

      public void setRelyingPartyContextLookupStrategy(@Nonnull Function<org.opensaml.profile.context.ProfileRequestContext,net.shibboleth.profile.context.RelyingPartyContext> strategy)
      Set lookup strategy for RelyingPartyContext.
      Parameters:
      strategy - lookup strategy
    • doPreExecute

      protected boolean doPreExecute(@Nonnull org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
      Overrides:
      doPreExecute in class org.opensaml.profile.action.AbstractConditionalProfileAction
    • doExecute

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