日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

面試官:SpringCloudGateway過(guò)濾器類型有哪些?

來(lái)源: 責(zé)編: 時(shí)間:2024-02-01 12:47:03 227觀看
導(dǎo)讀在 Spring Cloud Gateway 中,過(guò)濾器總共分為以下兩大類:局部過(guò)濾器:只作用于某一個(gè)路由(route)。全局過(guò)濾器:對(duì)所有的路由都有效。內(nèi)置全局過(guò)濾器:Spring Cloud Gateway 自帶的 30+ 過(guò)濾器,詳情請(qǐng)?jiān)L問(wèn):https://docs.spring.io/

xg128資訊網(wǎng)——每日最新資訊28at.com

在 Spring Cloud Gateway 中,過(guò)濾器總共分為以下兩大類:xg128資訊網(wǎng)——每日最新資訊28at.com

  • 局部過(guò)濾器:只作用于某一個(gè)路由(route)。
  • 全局過(guò)濾器:對(duì)所有的路由都有效。
  1. 內(nèi)置全局過(guò)濾器:Spring Cloud Gateway 自帶的 30+ 過(guò)濾器,詳情請(qǐng)?jiān)L問(wèn):https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories
  2. 自定義全局過(guò)濾器:開(kāi)發(fā)者自行實(shí)現(xiàn)的過(guò)濾器。

1、局部過(guò)濾器

Spring Cloud Gateway 中的局部過(guò)濾器配置如下:xg128資訊網(wǎng)——每日最新資訊28at.com

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

以上過(guò)濾器的含義是在輸出對(duì)象 Response 中添加 Header 信息,key 為“gateway-flag”,value 為“javacn.site”。xg128資訊網(wǎng)——每日最新資訊28at.com

PS:AddResponseHeader 也是 Gateway 內(nèi)置過(guò)濾器之一。xg128資訊網(wǎng)——每日最新資訊28at.com

2、全局過(guò)濾器

全局過(guò)濾器會(huì)對(duì)當(dāng)前網(wǎng)關(guān)中的所有路由都生效。xg128資訊網(wǎng)——每日最新資訊28at.com

(1)內(nèi)置全局過(guò)濾器

Spring Cloud Gateway 中的內(nèi)置全局過(guò)濾器配置如下:xg128資訊網(wǎng)——每日最新資訊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”就是全局內(nèi)置過(guò)濾器,它對(duì)所有的路由(route)有效,它的含義是在輸出對(duì)象 Response 中添加 Header 信息,key 為“gateway-default-filters”,value 為“www.javacn.site”。xg128資訊網(wǎng)——每日最新資訊28at.com

(2)自定義全局過(guò)濾器

Spring Cloud Gateway 中自定義全局過(guò)濾器的實(shí)現(xiàn)是,定義一個(gè)類,使用 @Component 注解將其存入 IoC 容器,然后再實(shí)現(xiàn) GlobalFilter 接口,重寫 filter 方法,在 filter 中寫自己的過(guò)濾方法即可,具體實(shí)現(xiàn)如下:xg128資訊網(wǎng)——每日最新資訊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 對(duì)象        ServerHttpRequest request = exchange.getRequest();        ServerHttpResponse response = exchange.getResponse();        // 業(yè)務(wù)邏輯代碼        if(request.getQueryParams().getFirst("auth")==null){            // 權(quán)限有問(wèn)題返回,并結(jié)束執(zhí)行            response.setStatusCode(HttpStatus.FORBIDDEN);            return response.setComplete();        }        // 此步驟正常,執(zhí)行下一步        return chain.filter(exchange);    }    @Override    public int getOrder() {        // 此值越小越早執(zhí)行        return 1;    }}

以上代碼是驗(yàn)證請(qǐng)求參數(shù)中是否有“auth”參數(shù),如果沒(méi)有的話就認(rèn)為未登錄,調(diào)用“response.setComplete()”終止繼續(xù)執(zhí)行,反之則認(rèn)為已經(jīng)登錄,可以執(zhí)行后續(xù)流程了,使用“chain.filter(exchange)”來(lái)實(shí)現(xiàn)。xg128資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-70404-0.html面試官:SpringCloudGateway過(guò)濾器類型有哪些?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Reducer 和 Context 實(shí)現(xiàn)簡(jiǎn)單的 Redux

下一篇: Rust 值得關(guān)注的三個(gè) Web 框架

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 宝鸡市| 永修县| 嘉善县| 安徽省| 新邵县| 镇安县| 平果县| 浠水县| 从江县| 延津县| 城固县| 台州市| 石棉县| 托里县| 南开区| 辽中县| 修文县| 中卫市| 玛多县| 灵石县| 东丰县| 黄陵县| 临高县| 新民市| 绍兴县| 普洱| 靖西县| 昭苏县| 英山县| 得荣县| 岱山县| 东至县| 英山县| 苍山县| 徐闻县| 鸡泽县| 平舆县| 湖北省| 温宿县| 瓮安县| 永和县|