Class BaseHttpServletRequestXMLMessageDecoder
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- org.opensaml.messaging.decoder.AbstractMessageDecoder
-
- org.opensaml.messaging.decoder.servlet.AbstractHttpServletRequestMessageDecoder
-
- org.opensaml.messaging.decoder.servlet.BaseHttpServletRequestXMLMessageDecoder
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,UnmodifiableComponent,MessageDecoder,HttpServletRequestMessageDecoder
public abstract class BaseHttpServletRequestXMLMessageDecoder extends AbstractHttpServletRequestMessageDecoder
Base class for message decoders which decode XML messages from anHttpServletRequest.
-
-
Field Summary
Fields Modifier and Type Field Description private org.slf4j.LoggerlogClass logger.private ParserPoolparserPoolParser pool used to deserialize the message.private org.slf4j.LoggerprotocolMessageLogUsed to log protocol messages.
-
Constructor Summary
Constructors Constructor Description BaseHttpServletRequestXMLMessageDecoder()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddecode()Decode message data from the source and store it so that it may be retrieved viaMessageDecoder.getMessageContext().protected voiddoDestroy()protected voiddoInitialize()protected ObjectgetMessageToLog()Get the XMLObject which will be logged as the protocol message.ParserPoolgetParserPool()Gets the parser pool used to deserialize incoming messages.protected voidlogDecodedMessage()Log the decoded message to the protocol message logger.voidsetParserPool(ParserPool pool)Sets the parser pool used to deserialize incoming messages.protected XMLObjectunmarshallMessage(InputStream messageStream)Helper method that deserializes and unmarshalls the message from the given stream.protected voidvalidateHttpRequest(javax.servlet.http.HttpServletRequest request)Perform optional validation of the inboundHttpServletRequest.-
Methods inherited from class org.opensaml.messaging.decoder.servlet.AbstractHttpServletRequestMessageDecoder
getHttpServletRequest, setHttpServletRequest
-
Methods inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder
doDecode, 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
-
protocolMessageLog
@Nonnull private org.slf4j.Logger protocolMessageLog
Used to log protocol messages.
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
parserPool
@Nonnull private ParserPool parserPool
Parser pool used to deserialize the message.
-
-
Method Detail
-
decode
public void decode() throws MessageDecodingExceptionDecode message data from the source and store it so that it may be retrieved viaMessageDecoder.getMessageContext().- Specified by:
decodein interfaceMessageDecoder- Overrides:
decodein classAbstractHttpServletRequestMessageDecoder- Throws:
MessageDecodingException- if there is a problem decoding the message context
-
getParserPool
@Nonnull public ParserPool getParserPool()
Gets the parser pool used to deserialize incoming messages.- Returns:
- parser pool used to deserialize incoming messages
-
setParserPool
public void setParserPool(@Nonnull ParserPool pool)Sets the parser pool used to deserialize incoming messages.- Parameters:
pool- parser pool used to deserialize incoming messages
-
doDestroy
protected void doDestroy()
- Overrides:
doDestroyin classAbstractHttpServletRequestMessageDecoder
-
doInitialize
protected void doInitialize() throws ComponentInitializationException- Overrides:
doInitializein classAbstractHttpServletRequestMessageDecoder- Throws:
ComponentInitializationException
-
logDecodedMessage
protected void logDecodedMessage()
Log the decoded message to the protocol message logger.
-
getMessageToLog
protected Object getMessageToLog()
Get the XMLObject which will be logged as the protocol message.- Returns:
- the XMLObject message considered to be the protocol message for logging purposes
-
unmarshallMessage
protected XMLObject unmarshallMessage(InputStream messageStream) throws MessageDecodingException
Helper method that deserializes and unmarshalls the message from the given stream.- Parameters:
messageStream- input stream containing the message- Returns:
- the inbound message
- Throws:
MessageDecodingException- thrown if there is a problem deserializing and unmarshalling the message
-
validateHttpRequest
protected void validateHttpRequest(javax.servlet.http.HttpServletRequest request) throws MessageDecodingExceptionPerform optional validation of the inboundHttpServletRequest.This method is called before the main
MessageDecoder.decode()logic}.The default behavior is a no-op. Subclasses may override with specific constraints.
- Parameters:
request- the HTTP request being validate- Throws:
MessageDecodingException- if request is not considered valid
-
-