Class SOAPLogoutRequest
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.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 toSAMLEndpointContext
to retrieve address from.private SAMLEndpointContext
Endpoint context to determine destination address.private final org.slf4j.Logger
Class logger.private LogoutRequest
LogoutRequest to process.private Function<ProfileRequestContext,
LogoutRequest> Lookup strategy forLogoutRequest
to process.private SAMLMetadataContext
Optional metadata for use in SOAP client.Strategy function for access toSAMLMetadataContext
for input to SOAP client.private LogoutPropagationContext
LogoutPropagationContext.Lookup strategy for context in which to report result.private SOAPClient
SOAP client.private String
The SOAP client message pipeline name. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doExecute
(ProfileRequestContext profileRequestContext) protected void
protected boolean
doPreExecute
(ProfileRequestContext profileRequestContext) private void
handleResponse
(ProfileRequestContext profileRequestContext, LogoutResponse response) Turn status from response into an appropriate result.void
Set lookup strategy forSAMLEndpointContext
to read from.void
Set the lookup strategy for theLogoutRequest
to send.void
Set lookup strategy forSAMLMetadataContext
for input to SOAP client.void
setPropagationContextLookupStrategy
(Function<ProfileRequestContext, LogoutPropagationContext> strategy) Set the lookup strategy for theLogoutPropagationContext
to update.void
setSOAPClient
(SOAPClient client) Set the SOAP client instance.void
setSOAPPipelineName
(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, 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, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, setHttpServletRequest, setHttpServletRequestSupplier, setHttpServletResponse, setHttpServletResponseSupplier
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 Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
logoutRequestLookupStrategy
Lookup strategy forLogoutRequest
to process. -
propagationContextLookupStrategy
@Nonnull private Function<ProfileRequestContext,LogoutPropagationContext> propagationContextLookupStrategyLookup strategy for context in which to report result. -
metadataContextLookupStrategy
Strategy function for access toSAMLMetadataContext
for input to SOAP client. -
endpointContextLookupStrategy
Strategy function for access toSAMLEndpointContext
to 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 theLogoutRequest
to send.- Parameters:
strategy
- lookup strategy
-
setPropagationContextLookupStrategy
public void setPropagationContextLookupStrategy(@Nonnull Function<ProfileRequestContext, LogoutPropagationContext> strategy) Set the lookup strategy for theLogoutPropagationContext
to update.- Parameters:
strategy
- lookup strategy
-
setMetadataContextLookupStrategy
public void setMetadataContextLookupStrategy(@Nonnull Function<ProfileRequestContext, SAMLMetadataContext> strategy) Set lookup strategy forSAMLMetadataContext
for input to SOAP client.- Parameters:
strategy
- lookup strategy
-
setEndpointContextLookupStrategy
public void setEndpointContextLookupStrategy(@Nonnull Function<ProfileRequestContext, SAMLEndpointContext> strategy) Set lookup strategy forSAMLEndpointContext
to 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:
doInitialize
in classAbstractInitializableComponent
- Throws:
ComponentInitializationException
-
doPreExecute
- Overrides:
doPreExecute
in classAbstractConditionalProfileAction
-
doExecute
- Overrides:
doExecute
in 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
-