Class DefaultHttpHeaderMapper
java.lang.Object
org.springframework.integration.http.support.DefaultHttpHeaderMapper
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.InitializingBean,org.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders>
public class DefaultHttpHeaderMapper
extends java.lang.Object
implements org.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders>, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean
Default
HeaderMapper implementation for HTTP.- Since:
- 2.0
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCONTENT_MD5protected static java.time.format.DateTimeFormatter[]DATE_FORMATSstatic java.lang.StringHTTP_REQUEST_HEADER_NAME_PATTERNstatic java.lang.StringHTTP_RESPONSE_HEADER_NAME_PATTERNprotected org.apache.commons.logging.Logloggerstatic java.lang.StringREFRESH -
Constructor Summary
Constructors Constructor Description DefaultHttpHeaderMapper() -
Method Summary
Modifier and Type Method Description voidafterPropertiesSet()protected static booleancontainsElementIgnoreCase(java.lang.String[] headerNames, java.lang.String name)protected java.lang.StringconvertToString(java.lang.Object value)voidfromHeaders(org.springframework.messaging.MessageHeaders headers, org.springframework.http.HttpHeaders target)Map from the integration MessageHeaders to an HttpHeaders instance.protected org.springframework.beans.factory.BeanFactorygetBeanFactory()protected static longgetFirstDate(java.lang.String headerValue, java.lang.String headerName)protected java.lang.ObjectgetHttpHeader(org.springframework.http.HttpHeaders source, java.lang.String name)static DefaultHttpHeaderMapperinboundMapper()Factory method for creating a basic inbound mapper instance.static DefaultHttpHeaderMapperoutboundMapper()Factory method for creating a basic outbound mapper instance.voidsetBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)voidsetExcludedInboundStandardResponseHeaderNames(java.lang.String... excludedInboundStandardResponseHeaderNames)Provide header names from the list of standard headers that should be suppressed when mapping inbound endpoint response headers.voidsetExcludedOutboundStandardRequestHeaderNames(java.lang.String... excludedOutboundStandardRequestHeaderNames)Provide header names from the list of standard headers that should be suppressed when mapping outbound endpoint request headers.voidsetInboundHeaderNames(java.lang.String... inboundHeaderNamesArg)Provide the header names that should be mapped from an HTTP request (for inbound adapters) or HTTP response (for outbound adapters) to a Spring Integration Message's headers.voidsetOutboundHeaderNames(java.lang.String... outboundHeaderNames)Provide the header names that should be mapped to an HTTP request (for outbound adapters) or HTTP response (for inbound adapters) from a Spring Integration Message's headers.protected static voidsetupDefaultInboundMapper(DefaultHttpHeaderMapper mapper)Subclasses can call this from a static inboundMapper() method to set up standard header mappings for an inbound mapper.protected static voidsetupDefaultOutboundMapper(DefaultHttpHeaderMapper mapper)Subclasses can call this from a static outboundMapper() method to set up standard header mappings for an outbound mapper.voidsetUserDefinedHeaderPrefix(java.lang.String userDefinedHeaderPrefix)Sets the prefix to use with user-defined (non-standard) headers.protected booleanshouldMapInboundHeader(java.lang.String headerName)java.util.Map<java.lang.String,java.lang.Object>toHeaders(org.springframework.http.HttpHeaders source)Map from an HttpHeaders instance to integration MessageHeaders.
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger -
CONTENT_MD5
public static final java.lang.String CONTENT_MD5- See Also:
- Constant Field Values
-
REFRESH
public static final java.lang.String REFRESH- See Also:
- Constant Field Values
-
HTTP_REQUEST_HEADER_NAME_PATTERN
public static final java.lang.String HTTP_REQUEST_HEADER_NAME_PATTERN- See Also:
- Constant Field Values
-
HTTP_RESPONSE_HEADER_NAME_PATTERN
public static final java.lang.String HTTP_RESPONSE_HEADER_NAME_PATTERN- See Also:
- Constant Field Values
-
DATE_FORMATS
protected static final java.time.format.DateTimeFormatter[] DATE_FORMATS
-
-
Constructor Details
-
DefaultHttpHeaderMapper
public DefaultHttpHeaderMapper()
-
-
Method Details
-
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException- Specified by:
setBeanFactoryin interfaceorg.springframework.beans.factory.BeanFactoryAware- Throws:
org.springframework.beans.BeansException
-
getBeanFactory
protected org.springframework.beans.factory.BeanFactory getBeanFactory() -
setOutboundHeaderNames
public void setOutboundHeaderNames(java.lang.String... outboundHeaderNames)Provide the header names that should be mapped to an HTTP request (for outbound adapters) or HTTP response (for inbound adapters) from a Spring Integration Message's headers. The values can also contain simple wildcard patterns (e.g. "foo*" or "*foo") to be matched.Any non-standard headers will be prefixed with the value specified by
setUserDefinedHeaderPrefix(String). The default is 'X-'.- Parameters:
outboundHeaderNames- The outbound header names.
-
setInboundHeaderNames
public void setInboundHeaderNames(java.lang.String... inboundHeaderNamesArg)Provide the header names that should be mapped from an HTTP request (for inbound adapters) or HTTP response (for outbound adapters) to a Spring Integration Message's headers. The values can also contain simple wildcard patterns (e.g. "foo*" or "*foo") to be matched.This will match the header name directly or, for non-standard HTTP headers, it will match the header name prefixed with the value specified by
setUserDefinedHeaderPrefix(String). The default for that is an empty String.- Parameters:
inboundHeaderNamesArg- The inbound header names.
-
setExcludedOutboundStandardRequestHeaderNames
public void setExcludedOutboundStandardRequestHeaderNames(java.lang.String... excludedOutboundStandardRequestHeaderNames)Provide header names from the list of standard headers that should be suppressed when mapping outbound endpoint request headers.- Parameters:
excludedOutboundStandardRequestHeaderNames- the excludedStandardRequestHeaderNames to set
-
setExcludedInboundStandardResponseHeaderNames
public void setExcludedInboundStandardResponseHeaderNames(java.lang.String... excludedInboundStandardResponseHeaderNames)Provide header names from the list of standard headers that should be suppressed when mapping inbound endpoint response headers.- Parameters:
excludedInboundStandardResponseHeaderNames- the excludedStandardResponseHeaderNames to set
-
setUserDefinedHeaderPrefix
public void setUserDefinedHeaderPrefix(java.lang.String userDefinedHeaderPrefix)Sets the prefix to use with user-defined (non-standard) headers. The default is an empty string.- Parameters:
userDefinedHeaderPrefix- The user defined header prefix.
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
fromHeaders
public void fromHeaders(org.springframework.messaging.MessageHeaders headers, org.springframework.http.HttpHeaders target)Map from the integration MessageHeaders to an HttpHeaders instance. Depending on which type of adapter is using this mapper, the HttpHeaders might be for an HTTP request (outbound adapter) or for an HTTP response (inbound adapter).- Specified by:
fromHeadersin interfaceorg.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders>
-
toHeaders
public java.util.Map<java.lang.String,java.lang.Object> toHeaders(org.springframework.http.HttpHeaders source)Map from an HttpHeaders instance to integration MessageHeaders. Depending on which type of adapter is using this mapper, the HttpHeaders might be from an HTTP request (inbound adapter) or from an HTTP response (outbound adapter).- Specified by:
toHeadersin interfaceorg.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders>
-
getHttpHeader
protected java.lang.Object getHttpHeader(org.springframework.http.HttpHeaders source, java.lang.String name) -
shouldMapInboundHeader
protected final boolean shouldMapInboundHeader(java.lang.String headerName) -
convertToString
@Nullable protected java.lang.String convertToString(java.lang.Object value) -
containsElementIgnoreCase
protected static boolean containsElementIgnoreCase(java.lang.String[] headerNames, java.lang.String name) -
getFirstDate
protected static long getFirstDate(java.lang.String headerValue, java.lang.String headerName) -
outboundMapper
Factory method for creating a basic outbound mapper instance. This will map all standard HTTP request headers when sending an HTTP request, and it will map all standard HTTP response headers when receiving an HTTP response.- Returns:
- The default outbound mapper.
-
setupDefaultOutboundMapper
Subclasses can call this from a static outboundMapper() method to set up standard header mappings for an outbound mapper.- Parameters:
mapper- the mapper.
-
inboundMapper
Factory method for creating a basic inbound mapper instance. This will map all standard HTTP request headers when receiving an HTTP request, and it will map all standard HTTP response headers when sending an HTTP response.- Returns:
- The default inbound mapper.
-
setupDefaultInboundMapper
Subclasses can call this from a static inboundMapper() method to set up standard header mappings for an inbound mapper.- Parameters:
mapper- the mapper.
-