Class HttpClientResponseSOAP11Decoder
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.messaging.decoder.AbstractMessageDecoder
org.opensaml.messaging.decoder.httpclient.AbstractHttpClientResponseMessageDecoder
org.opensaml.messaging.decoder.httpclient.BaseHttpClientResponseXMLMessageDecoder
org.opensaml.soap.client.soap11.decoder.http.impl.HttpClientResponseSOAP11Decoder
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,UnmodifiableComponent,HttpClientResponseMessageDecoder,MessageDecoder
- Direct Known Subclasses:
HttpClientResponseSOAP11Decoder,HttpClientResponseSOAP11Decoder
Basic SOAP 1.1 decoder for HTTP transport via an HttpClient's
ClassicHttpResponse.
This decoder takes a mandatory MessageHandler instance which is used to
populate the message that is returned as the MessageContext.getMessage().
A SOAP message oriented message exchange style might just populate the Envelope as the message. An application-specific payload-oriented message exchange would handle a specific type of payload structure.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate MessageHandlerMessage handler to use in processing the message body.private final org.slf4j.LoggerLogger.Fields inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder
BASE_PROTOCOL_MESSAGE_LOGGER_CATEGORY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected MessageDecodingExceptionbuildFaultException(org.apache.hc.core5.http.ClassicHttpResponse response) Build an exception by processing a fault response, i.e.protected voiddoDecode()Performs the decoding logic.protected voidGet the configured body handler MessageHandler.protected FaultReturn the Fault element from the SOAP message, if any.protected XMLObjectGet the XMLObject which will be logged as the protocol message.protected voidprocessSuccessResponse(org.apache.hc.core5.http.ClassicHttpResponse httpResponse, SOAP11Context soapContext) Process a successful response, i.e.voidsetBodyHandler(MessageHandler newBodyHandler) Set the configured body handler MessageHandler.Methods inherited from class org.opensaml.messaging.decoder.httpclient.BaseHttpClientResponseXMLMessageDecoder
decode, getParserPool, serializeMessageForLogging, setParserPool, unmarshallMessageMethods inherited from class org.opensaml.messaging.decoder.httpclient.AbstractHttpClientResponseMessageDecoder
getHttpResponse, setHttpResponseMethods inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder
getMessageContext, getProtocolMessageLogger, getProtocolMessageLoggerSubCategory, logDecodedMessage, setMessageContext, setProtocolMessageLoggerSubCategoryMethods 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.DestructableComponent
destroy, isDestroyedMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitializedMethods inherited from interface org.opensaml.messaging.decoder.MessageDecoder
getMessageContext
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logLogger. -
bodyHandler
Message handler to use in processing the message body.
-
-
Constructor Details
-
HttpClientResponseSOAP11Decoder
public HttpClientResponseSOAP11Decoder()Constructor.
-
-
Method Details
-
getBodyHandler
Get the configured body handler MessageHandler.- Returns:
- Returns the bodyHandler.
-
setBodyHandler
Set the configured body handler MessageHandler.- Parameters:
newBodyHandler- The bodyHandler to set.
-
doInitialize
- Overrides:
doInitializein classBaseHttpClientResponseXMLMessageDecoder- Throws:
ComponentInitializationException
-
doDecode
Performs the decoding logic. By the time this is called, this decoder has already been initialized and checked to ensure that it has not been destroyed.- Specified by:
doDecodein classAbstractMessageDecoder- Throws:
MessageDecodingException- thrown if there is a problem decoding the message
-
processSuccessResponse
protected void processSuccessResponse(@Nonnull org.apache.hc.core5.http.ClassicHttpResponse httpResponse, @Nonnull SOAP11Context soapContext) throws MessageDecodingException, IOException Process a successful response, i.e. one where the HTTP response code was 200.- Parameters:
httpResponse- the HTTP client responsesoapContext- the SOAP11Context instance- Throws:
MessageDecodingException- if message can not be unmarshalledIOException- if there is a problem with the response entity input stream
-
buildFaultException
@Nonnull protected MessageDecodingException buildFaultException(@Nonnull org.apache.hc.core5.http.ClassicHttpResponse response) throws MessageDecodingException, IOException Build an exception by processing a fault response, i.e. one where the HTTP response code was 500.- Parameters:
response- the HTTP client response- Returns:
- the message decoding exception representing the SOAP fault
- Throws:
MessageDecodingException- if message can not be unmarshalledIOException- if there is a problem with the response entity input stream
-
getFault
Return the Fault element from the SOAP message, if any.- Parameters:
soapMessage- the SOAP 1.1. Envelope being processed- Returns:
- the first Fault element found, or null
-
getMessageToLog
Get the XMLObject which will be logged as the protocol message.- Overrides:
getMessageToLogin classAbstractMessageDecoder- Returns:
- the XMLObject message considered to be the protocol message for logging purposes
-