Commit dd1d1ff0 by Nepxion

Fix:Zuul Filter添加Header在MyDiscoveryEnabledStrategy里无法获取

parent 7d1c86ad
......@@ -11,6 +11,7 @@ package com.nepxion.discovery.plugin.strategy.zuul.adapter;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -37,7 +38,12 @@ public class DefaultDiscoveryEnabledAdapter extends AbstractDiscoveryEnabledAdap
return null;
}
return request.getHeader(DiscoveryConstant.N_D_VERSION);
String version = request.getHeader(DiscoveryConstant.N_D_VERSION);
if (StringUtils.isEmpty(version)) {
version = zuulStrategyContextHolder.getZuulRequestHeaders().get(DiscoveryConstant.N_D_VERSION);
}
return version;
}
@Override
......@@ -51,7 +57,12 @@ public class DefaultDiscoveryEnabledAdapter extends AbstractDiscoveryEnabledAdap
return null;
}
return request.getHeader(DiscoveryConstant.N_D_REGION);
String region = request.getHeader(DiscoveryConstant.N_D_REGION);
if (StringUtils.isEmpty(region)) {
region = zuulStrategyContextHolder.getZuulRequestHeaders().get(DiscoveryConstant.N_D_REGION);
}
return region;
}
@Override
......@@ -65,6 +76,11 @@ public class DefaultDiscoveryEnabledAdapter extends AbstractDiscoveryEnabledAdap
return null;
}
return request.getHeader(DiscoveryConstant.N_D_ADDRESS);
String address = request.getHeader(DiscoveryConstant.N_D_ADDRESS);
if (StringUtils.isEmpty(address)) {
address = zuulStrategyContextHolder.getZuulRequestHeaders().get(DiscoveryConstant.N_D_ADDRESS);
}
return address;
}
}
\ No newline at end of file
......@@ -10,6 +10,8 @@ package com.nepxion.discovery.plugin.strategy.zuul.context;
* @version 1.0
*/
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.netflix.zuul.context.RequestContext;
......@@ -23,4 +25,8 @@ public class ZuulStrategyContextHolder {
return request;
}
public Map<String, String> getZuulRequestHeaders() {
return RequestContext.getCurrentContext().getZuulRequestHeaders();
}
}
\ No newline at end of file
......@@ -20,7 +20,7 @@ import org.springframework.web.server.ServerWebExchange;
public class MyGatewayFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest newRequest = exchange.getRequest().mutate().header("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("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();
return chain.filter(newExchange);
......@@ -28,6 +28,7 @@ public class MyGatewayFilter implements GlobalFilter, Ordered {
@Override
public int getOrder() {
return -200;
// Order必须小于-400
return -500;
}
}
\ No newline at end of file
......@@ -31,7 +31,7 @@ public class MyZuulFilter extends ZuulFilter {
@Override
public Object run() {
RequestContext context = RequestContext.getCurrentContext();
context.addZuulRequestHeader("version", "{\"discovery-springcloud-example-a\":\"1.0\", \"discovery-springcloud-example-b\":\"1.0\", \"discovery-springcloud-example-c\":\"1.0;1.2\"}");
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\"}");
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