使用spring集成作为中介

使用spring集成作为中介,spring,spring-integration,Spring,Spring Integration,我尝试使用Spring集成作为一个简单的中介。我们有一个webapp驻留在内部网上,无法从外部访问。现在我想通过DMZ中的中介公开这个应用程序。这仅仅意味着所有像*这样的url都应该转发到*。理论上非常简单,但在Spring集成中处理传出http Reuest的组件(HttpRequestExecutingMessageHandler)似乎需要一个明确的URI,即没有通配符匹配。这可以通过Spring集成实现吗?入站网关将url放入一个标头中;您只需在出站网关上使用表达式即可 url-expre

我尝试使用Spring集成作为一个简单的中介。我们有一个webapp驻留在内部网上,无法从外部访问。现在我想通过DMZ中的中介公开这个应用程序。这仅仅意味着所有像*这样的url都应该转发到*。理论上非常简单,但在Spring集成中处理传出http Reuest的组件(HttpRequestExecutingMessageHandler)似乎需要一个明确的URI,即没有通配符匹配。这可以通过Spring集成实现吗?

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

url-expression="headers['http_requestUrl'].replace('gateway', 'internal')"
如果您使用的是Java
@Configuration
,则可以使用接受
表达式的构造函数

Expression expression = new SpelExpressionParser().parseExpression(
    "headers['http_requestUrl'].replace('gateway', 'internal')");
通过抓取查询字符串并将其附加到新URL来执行类似操作

在这种情况下,它将查询字符串放入有效负载中;可以使用
子元素轻松地将其添加为标题(例如,对于帖子)