国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Gateway網(wǎng)關(guān) 全局過濾器

這篇具有很好參考價值的文章主要介紹了Gateway網(wǎng)關(guān) 全局過濾器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、全局過濾器

全局過濾器GlobalFilter

全局過濾器的作用也是處理一切進入網(wǎng)關(guān)的請求和微服務(wù)響應(yīng),與GatewayFilter的作用一樣。
區(qū)別在于GatewayFilter通過配置定義,處理邏輯是固定的。

需求:定義全局過濾器,攔截請求,判斷請求的參數(shù)是否滿足下面條件: 參數(shù)中是否有authorization, authorization參數(shù)值是否為admin 如果同時滿足則放行,否則攔截而GlobalFilter的邏輯需要自己寫代碼實現(xiàn),定義方式是實現(xiàn)GlobalFilter接口

public interface GlobalFilter {
 /**
    * 處理當(dāng)前請求,有必要的話通過{@link GatewayFilterChain}將請求交給下一個過濾器處理
    * @param exchange 請求上下文,里面可以獲取Request、Response等信息    
    * @param chain 用來把請求委托給下一個過濾器     
    * @return {@code Mono<Void>} 
    * 返回標(biāo)示當(dāng)前過濾器業(yè)務(wù)結(jié)束    
*/
Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);
}

需求:定義全局過濾器,攔截請求,判斷請求的參數(shù)是否滿足下面條件:

  • 參數(shù)中是否有authorization
  • authorization參數(shù)值是否為admin

如果同時滿足則放行,否則攔截

@Order(-1) //順序注解:指定過濾器的順序。(也可以通過Ordered接口實現(xiàn))
@Component
public class AuthorizeFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //1.獲取請求參數(shù)
        ServerHttpRequest request = exchange.getRequest();
        MultiValueMap<String, String> params = request.getQueryParams();
        //2.獲取參數(shù)中的 authorization參數(shù)
        String auth = params.getFirst("authorization");
        //3.判斷參數(shù)是否等于admin
        if(auth.equals("admin")){
            //4.相同就放行
            return chain.filter(exchange);
        }
        //5.不同
        //5.1 設(shè)置狀態(tài)碼
        exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
        return exchange.getResponse().setComplete();
    }

    @Override
    public int getOrder() {
        return -1;
    }
}

全局過濾器的作用是什么?

對所有路由都生效的過濾器,并且可以自定義處理邏輯

實現(xiàn)全局過濾器的步驟?

  1. 實現(xiàn)GlobalFilter接口
  2. 添加@Order注解或?qū)崿F(xiàn)Ordered接口
  3. 編寫處理邏輯

過濾器執(zhí)行順序

Gateway網(wǎng)關(guān) 全局過濾器

  • 每一個過濾器都必須指定一個int類型的order值,order值越小,優(yōu)先級越高,執(zhí)行順序越靠前。
  • GlobalFilter通過實現(xiàn)Ordered接口,或者添加@Order注解來指定order值,由我們自己指定
  • 路由過濾器和defaultFilter的order由Spring指定,默認是按照聲明順序從1遞增。
  • 當(dāng)過濾器的order值一樣時,會按照 defaultFilter > 路由過濾器 > GlobalFilter的順序執(zhí)行。?

跨域問題處理

跨域:域名不一致就是跨域,主要包括:

  • 域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com
  • 域名相同,端口不同:localhost:8080和localhost8081

跨域問題:瀏覽器禁止請求的發(fā)起者與服務(wù)端發(fā)生跨域ajax請求,請求被瀏覽器攔截的問題 解決方案:CORS

網(wǎng)關(guān)處理跨域采用的同樣是CORS方案,并且只需要簡單配置即可實現(xiàn):

CORS跨域要配置的參數(shù)包括哪幾個?文章來源地址http://www.zghlxwxcb.cn/news/detail-469065.html

  • 允許哪些域名跨域?
  • 允許哪些請求頭?
  • 允許哪些請求方式?
  • 是否允許使用cookie?
  • 有效期是多久?
spring:
  cloud:
    gateway:
      globalcors: # 全局的跨域處理
        add-to-simple-url-handler-mapping: true # 解決options請求被攔截問題
        corsConfigurations:
          '[/**]':
            allowedOrigins: # 允許哪些網(wǎng)站的跨域請求
              - "http://localhost:8090"
              - "http://www.leyou.com"
            allowedMethods: # 允許的跨域ajax的請求方式
              - "GET"
              - "POST"
              - "DELETE"
              - "PUT"
              - "OPTIONS"
            allowedHeaders: "*" # 允許在請求中攜帶的頭信息
            allowCredentials: true # 是否允許攜帶cookie
            maxAge: 360000 # 這次跨域檢測的有效期

到了這里,關(guān)于Gateway網(wǎng)關(guān) 全局過濾器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring Cloud GateWay 全局過濾器

    這是一個自定義的 Spring Cloud Gateway 全局過濾器(Global Filter)。在 Spring Cloud Gateway 中,全局過濾器可以在請求被路由到目標(biāo)服務(wù)之前或之后執(zhí)行一些操作。這個過濾器實現(xiàn)了 GlobalFilter 接口和 Ordered 接口,這兩個接口的作用如下: GlobalFilter 接口: 這是一個 Spring Cloud Gateway 提

    2024年02月11日
    瀏覽(20)
  • 178 服務(wù)網(wǎng)關(guān)GateWay---局部過濾器(GatewayFilter)

    178 服務(wù)網(wǎng)關(guān)GateWay---局部過濾器(GatewayFilter)

    在微服務(wù)架構(gòu)下,后端微服務(wù)可能都需要做一些重復(fù)相同的事情,如:認證鑒權(quán)、限流、黑白名單、日志收集等。對于這些需求當(dāng)有了網(wǎng)關(guān)之后,就可以統(tǒng)一的在網(wǎng)關(guān)中實現(xiàn)即可,避免代碼冗余。 ? 要實現(xiàn)這些功能,則需要通過網(wǎng)關(guān)的過濾器進行實現(xiàn)。網(wǎng)關(guān)的過濾器類型分

    2024年02月21日
    瀏覽(29)
  • 網(wǎng)關(guān) GateWay 的使用詳解、路由、過濾器、跨域配置!

    網(wǎng)關(guān) GateWay 的使用詳解、路由、過濾器、跨域配置!

    SpringCloudGateway網(wǎng)關(guān)是所有微服務(wù)的統(tǒng)一入口。 1.1 它的主要作用是: 反向代理(請求的轉(zhuǎn)發(fā)) 路由和負載均衡 身份認證和權(quán)限控制 對請求限流 1.2 相比于Zuul的優(yōu)勢: SpringCloudGateway基于Spring5中提供的WebFlux,是一種響應(yīng)式編程的實現(xiàn),性能更加優(yōu)越。 Zuul的實現(xiàn)方式比較老式

    2024年02月07日
    瀏覽(93)
  • 網(wǎng)關(guān) GateWay 的使用詳解、路由、過濾器、跨域配置

    網(wǎng)關(guān) GateWay 的使用詳解、路由、過濾器、跨域配置

    SpringCloudGateway網(wǎng)關(guān)是所有微服務(wù)的統(tǒng)一入口。 1.1 它的主要作用是: 反向代理(請求的轉(zhuǎn)發(fā)) 路由和負載均衡 身份認證和權(quán)限控制 對請求限流 1.2 相比于Zuul的優(yōu)勢: SpringCloudGateway基于Spring5中提供的WebFlux,是一種響應(yīng)式編程的實現(xiàn),性能更加優(yōu)越。 Zuul的實現(xiàn)方式比較老式

    2024年02月14日
    瀏覽(93)
  • JAVA開發(fā)(通過網(wǎng)關(guān)gateway過濾器進行返回結(jié)果加密)

    JAVA開發(fā)(通過網(wǎng)關(guān)gateway過濾器進行返回結(jié)果加密)

    在對C的網(wǎng)站或者APP后端接口中,參數(shù)的傳輸往往需要加密傳輸。這時我們 可以通過springcloud的網(wǎng)關(guān)過濾器進行統(tǒng)一的控制。 網(wǎng)關(guān)過濾器的執(zhí)行順序: 請求進入網(wǎng)關(guān)會碰到三類過濾器:當(dāng)前路由過濾器、DefaultFilter、GlobalFilter。 請求路由后,會將當(dāng)前路由過濾器和DefaultFilter、

    2023年04月17日
    瀏覽(21)
  • Spring Cloud Gateway GlobalFilter(全局過濾器)詳解(官方原版)

    GlobalFilter接口具有與GatewayFilter相同的簽名。這些是有條件地應(yīng)用于所有路由的特殊過濾器。 當(dāng)請求與路由匹配時,過濾web處理程序會將GlobalFilter的所有實例和GatewayFilter的所有路由特定實例添加到過濾器鏈中。這個組合過濾器鏈由org.springframework.core.Ordered接口排序,您可以通

    2024年02月09日
    瀏覽(16)
  • GateWay網(wǎng)關(guān)自定義過濾器實現(xiàn)token校驗完成統(tǒng)一鑒權(quán)

    GateWay網(wǎng)關(guān)自定義過濾器實現(xiàn)token校驗完成統(tǒng)一鑒權(quán)

    gateWay---API網(wǎng)關(guān),也可以稱為業(yè)務(wù)網(wǎng)關(guān),主要服務(wù)于微服務(wù)的; (1)? 三大組件 路由(Route) ????????構(gòu)建網(wǎng)關(guān)的基本模塊,由id(唯一標(biāo)示)、目標(biāo)URI、一組斷言、一組過濾器組成,如果斷言為true,則匹配該路由 ? 斷言(Predicate) ? ? ? ? ?可以使用它匹配來自HTTP請求的任何

    2024年02月08日
    瀏覽(22)
  • 微服務(wù)Gateway網(wǎng)關(guān)(自動定位/自定義過濾器/解決跨域)+nginx反向代理gateway集群

    微服務(wù)Gateway網(wǎng)關(guān)(自動定位/自定義過濾器/解決跨域)+nginx反向代理gateway集群

    目錄 Gateway網(wǎng)關(guān) 1.0.為什么需要網(wǎng)關(guān)? 1.1.如何使用gateway網(wǎng)關(guān) 1.2.網(wǎng)關(guān)從注冊中心拉取服務(wù) 1.3.gateway自動定位 1.4.gateway常見的斷言 1.5.gateway內(nèi)置的過濾器 1.6.自定義過濾器-全局過濾器 1.7.解決跨域問題 2.nginx反向代理gateway集群 2.1.配置文件 繼? nacos注冊中心+Ribbon負載均衡+完成

    2024年02月06日
    瀏覽(42)
  • SpringCloud - Spring Cloud 之 Gateway網(wǎng)關(guān),Route路由,Predicate 謂詞/斷言,F(xiàn)ilter 過濾器(十三)

    SpringCloud - Spring Cloud 之 Gateway網(wǎng)關(guān),Route路由,Predicate 謂詞/斷言,F(xiàn)ilter 過濾器(十三)

    閱讀本文前可先參考 ??????SpringCloud - Spring Cloud根/父項目,開發(fā)準備(二)_MinggeQingchun的博客-CSDN博客 SpringCloud - Spring Cloud 之 Gateway網(wǎng)關(guān)(十三)_MinggeQingchun的博客-CSDN博客 Web 有三大組件(監(jiān)聽器 過濾器 servlet),Spring Cloud GateWay 最主要的功能就是路由轉(zhuǎn)發(fā),而在定義

    2024年02月14日
    瀏覽(29)
  • java jwt生成token并在網(wǎng)關(guān)設(shè)置全局過濾器進行token的校驗并在給請求頭設(shè)置參數(shù)及在微服務(wù)中解析參數(shù)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包