欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Solon Cloud Gateway 开发:Route 的过滤器与定制

Solon Cloud Gateway 开发:Route 的过滤器与定制

2025/2/5 22:50:57 来源:https://blog.csdn.net/cwzb/article/details/145342295  浏览:    关键词:Solon Cloud Gateway 开发:Route 的过滤器与定制

RouteFilterFactory 是专为路由过滤拦截处理设计的接口。对应路由配置 filters

1、内置的路由过滤器

过滤器工厂本置前缀说明与示例
AddRequestHeaderFilterFactoryAddRequestHeader=添加请求头
(AddRequestHeader=Demo-Ver,1.0)
AddResponseHeaderFilterFactoryAddResponseHeader=添加响应头
(AddResponseHeader=Demo-Ver,1.0)
PrefixPathFilterFactoryPrefixPath=附加路径前缀
(PrefixPath=/app)
RedirectToFilterFactoryRedirectTo=跳转到
(RedirectTo=302,http://demo.org/a,true)
RemoveRequestHeaderFilterFactoryRemoveRequestHeader=移除请求头
(RemoveRequestHeader=Demo-Ver,1.0)
RemoveResponseHeaderFilterFactoryRemoveResponseHeader=移除响应头
(RemoveResponseHeader=Demo-Ver,1.0)
StripPrefixFilterFactoryStripPrefix=移除路径前缀段数
(StripPrefix=1)

2、定制示例

  • StripPrefix 过滤器定制示例(配置例:StripPrefix=1
@Component
public class StripPrefixFilterFactory implements RouteFilterFactory {@Overridepublic String prefix() {return "StripPrefix";}@Overridepublic ExFilter create(String config) {return new StripPrefixFilter(config);}public static class StripPrefixFilter implements ExFilter {private int parts;public StripPrefixFilter(String config) {if (Utils.isBlank(config)) {throw new IllegalArgumentException("StripPrefixFilter config cannot be blank");}this.parts = Integer.parseInt(config);}@Overridepublic Completable doFilter(ExContext ctx, ExFilterChain chain) {//目标路径重组List<String> pathFragments = Arrays.asList(ctx.newRequest().getPath().split("/", -1));String newPath = "/" + String.join("/", pathFragments.subList(parts + 1, pathFragments.size()));ctx.newRequest().path(newPath);return chain.doFilter(ctx);}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com