springcloud Gateway 自定义过滤器例子
发布日期:2021-09-18 00:51:44
浏览次数:11
分类:技术文章
本文共 1653 字,大约阅读时间需要 5 分钟。
springcloud Gateway网关自定义过滤器类型主要分全局和指定路由两种: GlobalFilter:全局过滤器,对所有的路由均起作用 GatewayFilter:只对指定的路由起作用
GatewayFilter又有两种实现方式:
一种是直接 实现GatewayFilter, Ordered接口,另一种是 继承AbstractGatewayFilterFactory类 实现GatewayFilter, Ordered接口方式过滤器:@Componentpublic class SignFilter implements GatewayFilter, Ordered { @Override public Monofilter(ServerWebExchange exchange, GatewayFilterChain chain) { exchange.getResponse().setStatusCode(HttpStatus.OK); //exchange.getResponse().getHeaders().add("Content-Type", "application/json;charset=UTF-8"); ApiResponse result = new ApiResponse(); String sign = exchange.getRequest().getQueryParams().getFirst("sign"); if(StringUtils.isEmpty(sign)) { result.setCode("99"); result.setMessage("签名验证失败"); DataBuffer dataBuffer = exchange.getResponse().bufferFactory().wrap(JsonUtil.objToJsonBytes(result)); return exchange.getResponse().writeWith(Flux.just(dataBuffer)); } return chain.filter(exchange); } /**过滤器群执行顺序 * 值越大则优先级越低 * */ @Override public int getOrder() { return 0; } }
注入bean:
@SpringBootApplicationpublic class GateWayApplicationMain { public static void main(String[] args) { SpringApplication.run(GateWayApplicationMain.class, args); } /**自定义过滤器有两种实现方式*/ @Bean public RouteLocator routeLocator(RouteLocatorBuilder builder) { return builder.routes().route(r -> r.path("/sys/**") .uri("http://localhost:6320") .filters(new SignFilter()) .id("apiweb")) .build(); } }
转载地址:https://blog.csdn.net/yucaifu1989/article/details/105102560 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年03月26日 10时03分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
nyoj1328派队方案
2019-04-26
nyoj322Sort归并排序
2019-04-26
nyoj1235A/B Problem逆元
2019-04-26
nyoj1270 care for China记忆化搜索
2019-04-26
linux常用命令
2019-04-26
快速排序qsort
2019-04-26
nyoj42一笔画问题欧拉图
2019-04-26
nyoj880还是打印菱形
2019-04-26
第八届蓝桥杯第4题:方格分割
2019-04-26
nyoj608畅通工程
2019-04-26
解决linux下mysql忘记密码的情况
2019-04-26
nyoj1101Oh, my God!错排公式
2019-04-26
nyoj动物统计字典树
2019-04-26
操作系统模拟生产者消费者问题
2019-04-26
JavaWeb的
2019-04-26
如何用JAVA爬取AJAX加载后的页面
2019-04-26
6重常用的排序算法代码
2019-04-26
VUE CLI 4.x v-for 图片不显示解决方法
2019-04-26
VUE CLI 4.x 打包成APP后白屏解决办法&&打包APP教程
2019-04-26
解决Vue history模式下路由跳转时页面404问题
2019-04-26