Class SOAPLogoutRequest
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.saml.saml2.profile.impl.SOAPLogoutRequest
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
Profile action that propagates a prepared
LogoutRequest message to an SP via the SOAP
binding, encapsulating SOAP pipeline construction and execution.
The outbound message is pulled from the ProfileRequestContext to allow the surrounding
flow to remain largely SOAP-unaware.
Success or failure is reflected in a LogoutPropagationContext accessed via a lookup
strategy.
The response message is also stored off in the inbound message context.
- Since:
- 4.0.0
- Event:
EventIds.PROCEED_EVENT_ID,EventIds.INVALID_PROFILE_CTX,EventIds.INVALID_MSG_CTX,EventIds.INVALID_MESSAGE,EventIds.IO_ERROR- Postcondition:
LogoutPropagationContext.getResult()reflects the status of the logout attempt., profileRequestContext.getInboundMessageContext().getMessage() is populated if a response is obtained.
-
Field Summary
FieldsModifier and TypeFieldDescriptionStrategy function for access toSAMLEndpointContextto retrieve address from.private SAMLEndpointContextEndpoint context to determine destination address.private final org.slf4j.LoggerClass logger.private LogoutRequestLogoutRequest to process.private Function<ProfileRequestContext,LogoutRequest> Lookup strategy forLogoutRequestto process.private SAMLMetadataContextOptional metadata for use in SOAP client.Strategy function for access toSAMLMetadataContextfor input to SOAP client.private LogoutPropagationContextLogoutPropagationContext.Lookup strategy for context in which to report result.private SOAPClientSOAP client.private StringThe SOAP client message pipeline name. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoExecute(ProfileRequestContext profileRequestContext) protected voidprotected booleandoPreExecute(ProfileRequestContext profileRequestContext) private voidhandleResponse(ProfileRequestContext profileRequestContext, LogoutResponse response) Turn status from response into an appropriate result.voidSet lookup strategy forSAMLEndpointContextto read from.voidSet the lookup strategy for theLogoutRequestto send.voidSet lookup strategy forSAMLMetadataContextfor input to SOAP client.voidsetPropagationContextLookupStrategy(Function<ProfileRequestContext, LogoutPropagationContext> strategy) Set the lookup strategy for theLogoutPropagationContextto update.voidsetSOAPClient(SOAPClient client) Set the SOAP client instance.voidsetSOAPPipelineName(String name) Set the name of the specific SOAP client message pipeline to use, for example withPipelineFactoryHttpSOAPClient.Methods 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. -
logoutRequestLookupStrategy
Lookup strategy forLogoutRequestto process. -
propagationContextLookupStrategy
@Nonnull private Function<ProfileRequestContext,LogoutPropagationContext> propagationContextLookupStrategyLookup strategy for context in which to report result. -
metadataContextLookupStrategy
Strategy function for access toSAMLMetadataContextfor input to SOAP client. -
endpointContextLookupStrategy
Strategy function for access toSAMLEndpointContextto retrieve address from. -
soapClient
SOAP client. -
soapPipelineName
The SOAP client message pipeline name. -
logoutRequest
LogoutRequest to process. -
propagationContext
LogoutPropagationContext. -
mdContext
Optional metadata for use in SOAP client. -
epContext
Endpoint context to determine destination address.
-
-
Constructor Details
-
SOAPLogoutRequest
public SOAPLogoutRequest()Constructor.
-
-
Method Details
-
setLogoutRequestLookupStrategy
public void setLogoutRequestLookupStrategy(@Nonnull Function<ProfileRequestContext, LogoutRequest> strategy) Set the lookup strategy for theLogoutRequestto send.- Parameters:
strategy- lookup strategy
-
setPropagationContextLookupStrategy
public void setPropagationContextLookupStrategy(@Nonnull Function<ProfileRequestContext, LogoutPropagationContext> strategy) Set the lookup strategy for theLogoutPropagationContextto update.- Parameters:
strategy- lookup strategy
-
setMetadataContextLookupStrategy
public void setMetadataContextLookupStrategy(@Nonnull Function<ProfileRequestContext, SAMLMetadataContext> strategy) Set lookup strategy forSAMLMetadataContextfor input to SOAP client.- Parameters:
strategy- lookup strategy
-
setEndpointContextLookupStrategy
public void setEndpointContextLookupStrategy(@Nonnull Function<ProfileRequestContext, SAMLEndpointContext> strategy) Set lookup strategy forSAMLEndpointContextto read from.- Parameters:
strategy- lookup strategy
-
setSOAPClient
Set the SOAP client instance.- Parameters:
client- the SOAP client
-
setSOAPPipelineName
Set the name of the specific SOAP client message pipeline to use, for example withPipelineFactoryHttpSOAPClient.- Parameters:
name- the pipeline name, or null
-
doInitialize
- Overrides:
doInitializein classAbstractInitializableComponent- Throws:
ComponentInitializationException
-
doPreExecute
- Overrides:
doPreExecutein classAbstractConditionalProfileAction
-
doExecute
- Overrides:
doExecutein classAbstractProfileAction
-
handleResponse
private void handleResponse(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull LogoutResponse response) Turn status from response into an appropriate result.- Parameters:
profileRequestContext- current profile request contextresponse- message to examine
-