当前位置:首页 > 科技  > 软件

面试官:SpringCloudGateway过滤器类型有哪些?

来源: 责编: 时间:2024-02-01 12:47:03 264观看
导读在 Spring Cloud Gateway 中,过滤器总共分为以下两大类:局部过滤器:只作用于某一个路由(route)。全局过滤器:对所有的路由都有效。内置全局过滤器:Spring Cloud Gateway 自带的 30+ 过滤器,详情请访问:https://docs.spring.io/

fsP28资讯网——每日最新资讯28at.com

在 Spring Cloud Gateway 中,过滤器总共分为以下两大类:fsP28资讯网——每日最新资讯28at.com

  • 局部过滤器:只作用于某一个路由(route)。
  • 全局过滤器:对所有的路由都有效。
  1. 内置全局过滤器:Spring Cloud Gateway 自带的 30+ 过滤器,详情请访问:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories
  2. 自定义全局过滤器:开发者自行实现的过滤器。

1、局部过滤器

Spring Cloud Gateway 中的局部过滤器配置如下:fsP28资讯网——每日最新资讯28at.com

spring:  cloud:    gateway:      routes:        - id: userservice          uri: http://192.168.1.7:56628          predicates:            - Path=/user/**          filters:            - AddResponseHeader=gateway-flag, javacn.site

以上过滤器的含义是在输出对象 Response 中添加 Header 信息,key 为“gateway-flag”,value 为“javacn.site”。fsP28资讯网——每日最新资讯28at.com

PS:AddResponseHeader 也是 Gateway 内置过滤器之一。fsP28资讯网——每日最新资讯28at.com

2、全局过滤器

全局过滤器会对当前网关中的所有路由都生效。fsP28资讯网——每日最新资讯28at.com

(1)内置全局过滤器

Spring Cloud Gateway 中的内置全局过滤器配置如下:fsP28资讯网——每日最新资讯28at.com

spring:  cloud:    gateway:      routes:        - id: userservice          uri: http://192.168.1.7:51627          predicates:          - Weight=group1,50        - id: userservice2          uri: http://192.168.1.7:56628          predicates:            - Weight=group1,50          filters:            - AddResponseHeader=gateway-flag, javacn.site      default-filters:        - AddResponseHeader=gateway-default-filters, www.javacn.site

其中的“default-filters”就是全局内置过滤器,它对所有的路由(route)有效,它的含义是在输出对象 Response 中添加 Header 信息,key 为“gateway-default-filters”,value 为“www.javacn.site”。fsP28资讯网——每日最新资讯28at.com

(2)自定义全局过滤器

Spring Cloud Gateway 中自定义全局过滤器的实现是,定义一个类,使用 @Component 注解将其存入 IoC 容器,然后再实现 GlobalFilter 接口,重写 filter 方法,在 filter 中写自己的过滤方法即可,具体实现如下:fsP28资讯网——每日最新资讯28at.com

import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.http.HttpStatus;import org.springframework.http.server.reactive.ServerHttpRequest;import org.springframework.http.server.reactive.ServerHttpResponse;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;@Componentpublic class AuthFilter implements GlobalFilter, Ordered {    @Override    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {        // 得到 request、response 对象        ServerHttpRequest request = exchange.getRequest();        ServerHttpResponse response = exchange.getResponse();        // 业务逻辑代码        if(request.getQueryParams().getFirst("auth")==null){            // 权限有问题返回,并结束执行            response.setStatusCode(HttpStatus.FORBIDDEN);            return response.setComplete();        }        // 此步骤正常,执行下一步        return chain.filter(exchange);    }    @Override    public int getOrder() {        // 此值越小越早执行        return 1;    }}

以上代码是验证请求参数中是否有“auth”参数,如果没有的话就认为未登录,调用“response.setComplete()”终止继续执行,反之则认为已经登录,可以执行后续流程了,使用“chain.filter(exchange)”来实现。fsP28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-70404-0.html面试官:SpringCloudGateway过滤器类型有哪些?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Reducer 和 Context 实现简单的 Redux

下一篇: Rust 值得关注的三个 Web 框架

标签:
  • 热门焦点
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 2天涨粉255万,又一赛道在抖音爆火

    来源:运营研究社作者 | 张知白编辑 | 杨佩汶设计 | 晏谈梦洁这个暑期,旅游赛道彻底火了:有的「地方」火了&mdash;&mdash;贵州村超旅游收入 1 个月超过 12 亿;有的「博主」火了&m
  • 当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己&ldquo;当家&rdquo;的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
  • AI艺术欣赏体验会在上海梅赛德斯奔驰中心音乐俱乐部上演

    光影交错的镜像世界,虚实幻化的视觉奇观,虚拟偶像与真人共同主持,这些场景都出现在2019世界人工智能大会的舞台上。8月29日至31日,“AI艺术欣赏体验会”在上海
  • 外交部:美方应停止在网络安全问题上不负责任地指责他国

      中国外交部今天(16日)举行例行记者会。会上,有记者问,美国情报官员称,他们正在阻拦来自中国以及其他国家的黑客获取相关科研成果。 中方对此有何评论?对此
Top