gpt4 book ai didi

spring-boot - Spring云网关中如何添加Pre Filter

转载 作者:行者123 更新时间:2023-12-05 06:01:25 26 4
gpt4 key购买 nike

我正在使用 spring cloud gateway 将请求路由到我的下游应用程序我让路由器定义了如下内容

@Configuration
public class SpringCloudConfig {

@Bean
public RouteLocator gatewayRoutes(RouteLocatorBuilder builder) {
return builder.routes()
.route(r -> r.path("/user/test/**")
.uri("http://localhost:8081/test")
.id("testModule"))
.build();
}

}

路由工作正常,现在我需要添加一个预过滤器,它可以做一些前置条件并获得路由路径。但不知道如何动态更改 uri .uri("http://localhost:8081/test")

下面是我在 preFilter 中尝试的代码。

   @Component
public class testPreFilter extends AbstractGatewayFilterFactory {


@Override
public GatewayFilter apply(Config config) {
System.out.println("inside testPreFilter.apply method");

return (exchange, chain) -> {
//get headers and do lookup for URI in mapping DB

**//If contains return modify the uri**
return chain.filter(exchange.mutate().request(request).build());
//else 401
};
}

}

所以我需要从传入路径 /user/test/** 转发到 http://localhost:8081/test1 或 http://localhost:8081/test2 基于我的自定义过滤器中的数据库查找返回

最佳答案

我相信你基本上改变了路径,所以你可以在 this 中做到这一点时尚。

根据从数据库中获取的值,设置路径。

关于spring-boot - Spring云网关中如何添加Pre Filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67198932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com