【发布时间】:2018-06-21 14:56:52
【问题描述】:
我有一个自定义网关过滤器 MYGatewayFilter.java 文件,现在我想将此网关过滤器与我在 application.yml 中编写的路由一起使用
spring:
cloud:
gateway:
routes:
- id: login2_route
uri: http://127.0.0.1:8083/login
predicates:
- Path: /login/
filters:
我如何为上述路线定义过滤器
自定义过滤器 MyGatewayFilter.java
public class MyGatewayFilter implements GatewayFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest request;
if(request.getHeaders().get("x-mydata")!=null){
request= exchange.getRequest().mutate().header("my-new-header",request.getHeaders().get("x-mydata").get(0)).build();
}
return chain.filter(exchange.mutate().request(request).build());
}
}
【问题讨论】:
-
什么问题是过滤器没有被读取或什么。同时粘贴过滤器代码。
-
@GrinishNepal 过滤器代码已附加,问题是如何在 application.yml 过滤器属性中指定此过滤器
-
为什么是-1?我试图弄清楚同样的事情,没有关于如何将自定义过滤器添加到路由的文档。
-
你的问题解决了吗,我也遇到了同样的问题,但是尝试了解决方法还是没有成功。@GOURAV MEHTA
标签: java spring spring-boot spring-cloud-netflix api-gateway