我有一个用例,我必须通过该消息中的字段预先过滤一个肥皂请求,并添加一个基于 IP 的速率限制器到该路由。我正在使用 Spring Cloud Gateway 2.0.0.RC2。
我使用 readBody() 方法来预过滤soap请求,但我不知道如何向这条路由添加速率限制器
@Bean
public RouteLocator wsRouteLocator(RouteLocatorBuilder builder, RequestRateLimiterGatewayFilterFactory rl) {
return builder.routes()
.route(r -> r.path("/services/**")
.and()
.readBody(String.class, s -> {
try {
// Verify xml message
} catch (XPathExpressionException e) {
e.printStackTrace();
return false;
}
})
.uri("http://10.60.96.56:9444")
)
.build();
我找到了使用 Spring Cloud 2.0.0.M4的指南。不幸的是,我在 Gateway 2.0.0.M4 中找不到 readBody() 方法。有人可以向我展示如何在 Spring Cloud Gateway 中使用 RateLimiter 吗?