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

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

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

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

在 Spring Cloud Gateway 中,过滤器总共分为以下两大类:kwQ28资讯网——每日最新资讯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 中的局部过滤器配置如下:kwQ28资讯网——每日最新资讯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”。kwQ28资讯网——每日最新资讯28at.com

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

2、全局过滤器

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

(1)内置全局过滤器

Spring Cloud Gateway 中的内置全局过滤器配置如下:kwQ28资讯网——每日最新资讯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”。kwQ28资讯网——每日最新资讯28at.com

(2)自定义全局过滤器

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

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

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

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

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

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 一文掌握 Golang 模糊测试(Fuzz Testing)

    模糊测试(Fuzz Testing)模糊测试(Fuzz Testing)是通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。可以用来发现应用程序、操作系统和网络协议等中的漏洞或
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 最“俊美”淘宝卖家,靠直播和短视频圈粉,上架秒光,年销3000万

    来源 | 电商在线文|易琬玉编辑|斯问受访店铺:Ringdoll戒之人形图源:微博@御座的黄山、&ldquo;Ringdoll戒之人形&rdquo;淘宝店铺有关外貌的评价,黄山已经听累了。生于1985年的他,哪
  • 当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己&ldquo;当家&rdquo;的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 小米汽车电池信息疑似曝光:容量101kWh,支持800V高压快充

    7月14日消息,今日一名博主在社交媒体发布了一张疑似小米汽车电池信息的照片,显示该电池包正是宁德时代麒麟电池,容量为101kWh,电压为726.7V,可以预测小
Top