Class HttpClientResponseSOAP11Decoder
- java.lang.Object
-
- net.shibboleth.utilities.java.support.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
public class HttpClientResponseSOAP11Decoder extends BaseHttpClientResponseXMLMessageDecoder
Basic SOAP 1.1 decoder for HTTP transport via an HttpClient'sHttpResponse.This decoder takes a mandatory
MessageHandlerinstance which is used to populate the message that is returned as theMessageContext.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
Fields Modifier and Type Field Description private MessageHandlerbodyHandlerMessage handler to use in processing the message body.private org.slf4j.LoggerlogLogger.
-
Constructor Summary
Constructors Constructor Description HttpClientResponseSOAP11Decoder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MessageDecodingExceptionbuildFaultException(org.apache.http.HttpResponse response)Build an exception by processing a fault response, i.e.protected voiddoDecode()Performs the decoding logic.protected voiddoInitialize()MessageHandlergetBodyHandler()Get the configured body handler MessageHandler.protected FaultgetFault(Envelope soapMessage)Return the Fault element from the SOAP message, if any.protected XMLObjectgetMessageToLog()Get the XMLObject which will be logged as the protocol message.protected voidprocessSuccessResponse(org.apache.http.HttpResponse 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, doDestroy, getParserPool, logDecodedMessage, setParserPool, unmarshallMessage
-
Methods inherited from class org.opensaml.messaging.decoder.httpclient.AbstractHttpClientResponseMessageDecoder
getHttpResponse, setHttpResponse
-
Methods inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder
getMessageContext, setMessageContext
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, 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.DestructableComponent
destroy, isDestroyed
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
Methods inherited from interface org.opensaml.messaging.decoder.MessageDecoder
getMessageContext
-
-
-
-
Field Detail
-
log
private final org.slf4j.Logger log
Logger.
-
bodyHandler
private MessageHandler bodyHandler
Message handler to use in processing the message body.
-
-
Method Detail
-
getBodyHandler
public MessageHandler getBodyHandler()
Get the configured body handler MessageHandler.- Returns:
- Returns the bodyHandler.
-
setBodyHandler
public void setBodyHandler(MessageHandler newBodyHandler)
Set the configured body handler MessageHandler.- Parameters:
newBodyHandler- The bodyHandler to set.
-
doDecode
protected void doDecode() throws MessageDecodingExceptionPerforms 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(org.apache.http.HttpResponse httpResponse, SOAP11Context soapContext) throws MessageDecodingException, IOExceptionProcess 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
protected MessageDecodingException buildFaultException(org.apache.http.HttpResponse 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
protected Fault getFault(Envelope soapMessage)
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
-
doInitialize
protected void doInitialize() throws ComponentInitializationException- Overrides:
doInitializein classBaseHttpClientResponseXMLMessageDecoder- Throws:
ComponentInitializationException
-
getMessageToLog
protected XMLObject getMessageToLog()
Get the XMLObject which will be logged as the protocol message.- Overrides:
getMessageToLogin classBaseHttpClientResponseXMLMessageDecoder- Returns:
- the XMLObject message considered to be the protocol message for logging purposes
-
-