Commit 618d40fb by Nepxion

增加从Zuul Filter获取Header的方式

parent 942fae37
...@@ -17,10 +17,12 @@ import org.springframework.core.Ordered; ...@@ -17,10 +17,12 @@ import org.springframework.core.Ordered;
import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
import com.nepxion.discovery.common.constant.DiscoveryConstant;
public class MyGatewayFilter implements GlobalFilter, Ordered { public class MyGatewayFilter implements GlobalFilter, Ordered {
@Override @Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest newRequest = exchange.getRequest().mutate().header("n-d-version", "{\"discovery-springcloud-example-a\":\"1.0\", \"discovery-springcloud-example-b\":\"1.0\", \"discovery-springcloud-example-c\":\"1.0;1.2\"}").build(); ServerHttpRequest newRequest = exchange.getRequest().mutate().header(DiscoveryConstant.N_D_VERSION, "{\"discovery-springcloud-example-a\":\"1.0\", \"discovery-springcloud-example-b\":\"1.0\", \"discovery-springcloud-example-c\":\"1.0;1.2\"}").build();
ServerWebExchange newExchange = exchange.mutate().request(newRequest).build(); ServerWebExchange newExchange = exchange.mutate().request(newRequest).build();
return chain.filter(newExchange); return chain.filter(newExchange);
......
...@@ -9,6 +9,9 @@ package com.nepxion.discovery.plugin.example.zuul.impl; ...@@ -9,6 +9,9 @@ package com.nepxion.discovery.plugin.example.zuul.impl;
* @version 1.0 * @version 1.0
*/ */
import org.apache.commons.lang3.StringUtils;
import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.context.RequestContext;
...@@ -31,7 +34,11 @@ public class MyZuulFilter extends ZuulFilter { ...@@ -31,7 +34,11 @@ public class MyZuulFilter extends ZuulFilter {
@Override @Override
public Object run() { public Object run() {
RequestContext context = RequestContext.getCurrentContext(); RequestContext context = RequestContext.getCurrentContext();
context.addZuulRequestHeader("n-d-version", "{\"discovery-springcloud-example-a\":\"1.0\", \"discovery-springcloud-example-b\":\"1.0\", \"discovery-springcloud-example-c\":\"1.0;1.2\"}"); // 来自于外界的Header,例如,从Postman传递过来的Header
String version = context.getRequest().getHeader(DiscoveryConstant.N_D_VERSION);
if (StringUtils.isEmpty(version)) {
context.addZuulRequestHeader(DiscoveryConstant.N_D_VERSION, "{\"discovery-springcloud-example-a\":\"1.0\", \"discovery-springcloud-example-b\":\"1.0\", \"discovery-springcloud-example-c\":\"1.0;1.2\"}");
}
return null; return null;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment