软件编程
位置:首页>> 软件编程>> java编程>> spring cloud zuul修改请求url的方法

spring cloud zuul修改请求url的方法

作者:xixicat  发布时间:2022-09-03 01:44:19 

标签:springcloud,zuul,请求url

前言

在日常开发中,除了修改请求参数、设置响应header,响应body外,还有一种需求就是url重新,或者是修改url,这里简述一下怎么在zuul修改url。话不多说了,来一起看看详细的介绍吧。

转发配置


demo:
ribbon:
NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
listOfServers: 192.168.99.100,192.168.99.101
zuul:
routes:
demo:
 path: /demo/**
 stripPrefix: true
 serviceId: demo

filter配置


@Component
public class UrlPathFilter extends ZuulFilter{

@Override
public String filterType() {
 return FilterConstants.PRE_TYPE;
}

@Override
public int filterOrder() {
 return FilterConstants.PRE_DECORATION_FILTER_ORDER + 1;
}

@Override
public boolean shouldFilter() {
 final String serviceId = (String) RequestContext.getCurrentContext().get("proxy");
 return "demo".equals(serviceId);
}

@Override
public Object run() {
 RequestContext context = RequestContext.getCurrentContext();
 Object originalRequestPath = context.get(FilterConstants.REQUEST_URI_KEY);
 //http://localhost:10000/demo/list/data
 //-->/api/prefix/list/data
 String modifiedRequestPath = "/api/prefix" + originalRequestPath;
 context.put(FilterConstants.REQUEST_URI_KEY, modifiedRequestPath);
 return null;
}
}

这样就大功告成了

总结

doc

PreDecorationFilter

Dynamically re-route all Zuul proxied requests to single URL

来源:https://segmentfault.com/a/1190000010749253

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com