使用spring集成作为中介

时间:2015-07-14 13:38:48

标签: spring spring-integration

我尝试将Spring集成用作简单的调解器。我们有一个驻留在Intranet上的webapp,无法从外部访问。现在我想通过DMZ中的调解员公开这个应用程序。这只是意味着所有网址都应该http://gateway/TheApp/ *转发到http://internal/TheApp/ *。理论上非常简单,但似乎在Spring集成中处理传出的http-reuest的组件(HttpRequestExecutingMessageHandler)需要一个明确的URI,即没有通配符匹配。这可以通过Spring集成来实现吗?

1 个答案:

答案 0 :(得分:1)

入站网关将url放入标头中;你只需在出站网关上使用一个表达式......

url-expression="headers['http_requestUrl'].replace('gateway', 'internal')"

如果您使用的是Java @Configuration,则可以使用带Expression的构造函数...

Expression expression = new SpelExpressionParser().parseExpression(
    "headers['http_requestUrl'].replace('gateway', 'internal')");

This test case通过抓取查询字符串并将其附加到新网址来执行类似操作。

在这种情况下,它将查询字符串放在有效负载中;可以使用<int:header/>子元素轻松添加为标题(例如,用于POST)。