Spring集成:如何过滤特定标头 - 只能使用标头映射器?

时间:2017-04-13 09:46:37

标签: java spring spring-integration

在Spring集成中,您可以在mapped-request-headers中设置属性mapped-response-headersheader-mapperoutbound-gateway

我的目标是过滤掉特定标题,因此我需要某种黑名单。但前两个属性是白名单。我可以说mapped-request-headers="*",然后传递每个标头,或者我可以放置一些特定的标头,但是只传递这些标头。但那不是我想要的。

我可以以某种方式覆盖标头映射器并将此bean添加到header-mapper属性,但这是这样做的吗? (我想知道为什么标题可以列入白名单但不列入黑名单)。是不是有一些功能来设置“过滤弹簧添加标题”和“手动添加标题”或什么?

1 个答案:

答案 0 :(得分:2)

您没有说明您正在使用的Spring Integration版本,或者您正在使用的端点类型。

从版本4.3开始,从AbstractHeaderMapper(AMQP,SOAP,XMPP)扩展的映射器现在支持否定标题"!foo,!bar,baz*"

如果您没有使用这些协议之一,则可以在端点上游(用于出站)或在端点(入站)之后使用头过滤器。

对于HTTP标头映射器(DefaultHttpHeaderMapper),您可以连接该类型的自定义Bean,您可以通过excludedOutboundStandardRequestHeaderNamesexcludedInboundStandardResponseHeaderNames属性添加要排除的任何标准标头。