欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

spring cloud zuul修改请求url的方法

程序员文章站 2024-02-29 11:17:10
前言 在日常开发中,除了修改请求参数、设置响应header,响应body外,还有一种需求就是url重新,或者是修改url,这里简述一下怎么在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