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

SpringCloud GateWay 在全局過濾器中注入OpenFeign網(wǎng)關(guān)后無法啟動(dòng)

這篇具有很好參考價(jià)值的文章主要介紹了SpringCloud GateWay 在全局過濾器中注入OpenFeign網(wǎng)關(guān)后無法啟動(dòng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、問題

二、原因

1、修改配置

2、添加@Lazy注解在client上面

?3、啟動(dòng)成功


一、問題

當(dāng)在gateway的全局過濾器GlobalFilter中注入OpenFeign接口的時(shí)候會(huì)一直卡在路由中,但是不會(huì)進(jìn)一步,導(dǎo)致啟動(dòng)未成功也未報(bào)錯(cuò)失敗

2024-01-18 22:06:59.299  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [After]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Before]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Between]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Cookie]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Header]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Host]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Method]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Path]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Query]
2024-01-18 22:06:59.300  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [ReadBody]
2024-01-18 22:06:59.301  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [RemoteAddr]
2024-01-18 22:06:59.301  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [XForwardedRemoteAddr]
2024-01-18 22:06:59.301  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Weight]
2024-01-18 22:06:59.301  INFO 19000 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [CloudFoundryRouteService]

二、原因

在gateway網(wǎng)關(guān)中不能使用openfeign同步調(diào)用

三、解決方法

1、修改配置

	由于配置了spring.cloud.gateway.discovery.locator.enabled = true導(dǎo)致,改為false或者去掉該配置,因?yàn)槟J(rèn)為false,但是該方案會(huì)導(dǎo)致動(dòng)態(tài)路由不能加載,影響微服務(wù)調(diào)用。
    gateway:
      discovery:
        locator:
          enabled: false 

2、添加@Lazy注解在client上面

在注入的AuthClient上面添加@Lazy注解

    @Lazy
    @Autowired
    private AuthClient authClient;

全部代碼:?

@Component
@Slf4j
public class GatewayGlobalFilter implements GlobalFilter, Ordered {
    @Autowired
    private AuthProperties authProperties;

    @Lazy
    @Autowired
    private AuthClient authClient;

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //獲取請(qǐng)求頭的request

        List<String> excludePaths = authProperties.getExcludePaths();
        log.info(excludePaths.toString());
        //判斷是否需要攔截
        ServerHttpRequest request = exchange.getRequest();
        RequestPath path = request.getPath();
        //如果不需要攔截則放行
        if(excludePaths.contains(path.toString())){
            return chain.filter(exchange);
        }
        //獲取token
        String authorization = request.getHeaders()
                .getFirst("authorization");
        String token= authorization.replace("Bearer ","");

        // 驗(yàn)證token
        String userId = authClient.getUserId(token);
        if(userId==null){
            //設(shè)置響應(yīng)碼為401
            ServerHttpResponse response = exchange.getResponse();
            response.setStatusCode(HttpStatus.UNAUTHORIZED);
            return response.setComplete();
        }

        //放行
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        return 0;
    }
}

?3、啟動(dòng)成功

SpringCloud GateWay 在全局過濾器中注入OpenFeign網(wǎng)關(guān)后無法啟動(dòng),spring cloud,gateway,spring文章來源地址http://www.zghlxwxcb.cn/news/detail-804181.html

到了這里,關(guān)于SpringCloud GateWay 在全局過濾器中注入OpenFeign網(wǎng)關(guān)后無法啟動(dòng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Spring Cloud】深入探索統(tǒng)一網(wǎng)關(guān) Gateway 的搭建,斷言工廠,過濾器工廠,全局過濾器以及跨域問題

    【Spring Cloud】深入探索統(tǒng)一網(wǎng)關(guān) Gateway 的搭建,斷言工廠,過濾器工廠,全局過濾器以及跨域問題

    在微服務(wù)架構(gòu)中,網(wǎng)關(guān)是至關(guān)重要的組件,具有多重職責(zé),為整個(gè)系統(tǒng)提供了一系列關(guān)鍵功能。從下面的微服務(wù)結(jié)構(gòu)圖中,我們可以明確網(wǎng)關(guān)的幾項(xiàng)主要作用: 微服務(wù)結(jié)構(gòu)圖: 請(qǐng)求過濾與安全: 用戶的所有請(qǐng)求首先經(jīng)過網(wǎng)關(guān),這使得網(wǎng)關(guān)成為系統(tǒng)的第一道防線。通過對(duì)傳入

    2024年02月07日
    瀏覽(23)
  • SpringCloud GateWay通過過濾器GatewayFilter修改請(qǐng)求或響應(yīng)內(nèi)容

    Spring Cloud Gateway在有些場(chǎng)景中需要獲取request body內(nèi)容進(jìn)行參數(shù)校驗(yàn)或參數(shù)修改,我們通過在GatewayFilter中獲取請(qǐng)求內(nèi)容來獲取和修改請(qǐng)求體,下面我們就基于ServerWebExchange來實(shí)現(xiàn): ServerWebExchange命名為服務(wù)網(wǎng)絡(luò)交換器,存放著重要的請(qǐng)求-響應(yīng)屬性、請(qǐng)求實(shí)例和響應(yīng)實(shí)例等等,有

    2024年02月16日
    瀏覽(21)
  • SpringCloud GateWay自定義過濾器之GatewayFilter和AbstractGatewayFactory

    GatewayFilter 是一個(gè)簡(jiǎn)單的接口,用于定義網(wǎng)關(guān)過濾器的行為。一個(gè)網(wǎng)關(guān)過濾器就是一個(gè)實(shí)現(xiàn)了 GatewayFilter 接口的類,它可以執(zhí)行在請(qǐng)求進(jìn)入網(wǎng)關(guān)或響應(yīng)離開網(wǎng)關(guān)時(shí)的某些操作。過濾器可以用于修改請(qǐng)求或響應(yīng),記錄日志,添加頭部信息,等等。 一個(gè)簡(jiǎn)單的自定義網(wǎng)關(guān)過濾器

    2024年02月01日
    瀏覽(17)
  • 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根/父項(xiàng)目,開發(fā)準(zhǔn)備(二)_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】SpringCloud Gateway自定義過濾器中獲取ServerHttpRequest的body中的數(shù)據(jù)為NULL的問題

    【Java】SpringCloud Gateway自定義過濾器中獲取ServerHttpRequest的body中的數(shù)據(jù)為NULL的問題

    這個(gè)情況出現(xiàn)在,我需要進(jìn)行驗(yàn)證碼的校驗(yàn),因此用戶的請(qǐng)求首先需要被驗(yàn)證碼過濾器校驗(yàn),而驗(yàn)證碼過濾器不需要設(shè)定為全局過濾器,因此我就單純的把它設(shè)定為了一個(gè)局部過濾器,代碼如下 然后我進(jìn)行請(qǐng)求的時(shí)候,json參數(shù)如下 然后請(qǐng)求經(jīng)過解析后會(huì)發(fā)現(xiàn),字符串居然是

    2024年02月09日
    瀏覽(17)
  • gateway-過濾器執(zhí)行順序

    請(qǐng)求進(jìn)入網(wǎng)關(guān)會(huì)碰到三類過濾器:當(dāng)前路由過濾器、DefaultFilter、GlobalFilter。 請(qǐng)求路由后,會(huì)將當(dāng)前路由過濾器和DefaultFilter、GlobalFilter,合并到一個(gè)過濾器鏈(集合)中,排序后依次執(zhí)行每個(gè)過濾器 過濾器執(zhí)行順序 1.每一個(gè)過濾器都必須指定一個(gè)int類型的order值,order值越小

    2024年02月13日
    瀏覽(19)
  • 網(wǎng)關(guān)Gateway過濾器的使用

    網(wǎng)關(guān)Gateway過濾器的使用

    前言: 最近在學(xué)習(xí)微服務(wù)相關(guān)的知識(shí),看了黑馬的相關(guān)課程,將關(guān)于Gateway過濾器的知識(shí)又總結(jié)了一些,希望能幫到各位小伙兒們以及加深下自己的印象?? 如果文章有什么需要改進(jìn)的地方還請(qǐng)大佬多多指教?? 小威先感謝大家的支持了?? Gateway網(wǎng)關(guān)的過濾器分為兩種,一種是

    2023年04月09日
    瀏覽(23)
  • gateway過濾器沒生效,特殊原因

    gateway過濾器沒生效,特殊原因

    看這邊文章的前提,你要會(huì)gateway,知道過濾器怎么配置? 直接來看過濾器,局部過濾器 再來看配置 請(qǐng)求路徑 http://127.0.0.1:8080/appframework/services/catalog/catalogSpecials.json?pageindex=1pagesize=10pkid=d9873700ef7e42b3b8f4e782f345975b 看起來確實(shí)沒什么問題 注意: 我這里還有個(gè)應(yīng)用,就是網(wǎng)關(guān)轉(zhuǎn)

    2024年02月14日
    瀏覽(21)
  • gateway之過濾器(Filter)詳解

    gateway之過濾器(Filter)詳解

    在Spring Cloud中,過濾器(Filter)是一種關(guān)鍵的組件,用于在微服務(wù)架構(gòu)中處理和轉(zhuǎn)換傳入請(qǐng)求以及傳出響應(yīng)。過濾器位于服務(wù)網(wǎng)關(guān)或代理中,并通過攔截請(qǐng)求和響應(yīng)流量來提供各種功能。 過濾器在請(qǐng)求的不同生命周期階段執(zhí)行特定的操作,例如鑒權(quán)、認(rèn)證、請(qǐng)求轉(zhuǎn)發(fā)、限流、

    2024年02月05日
    瀏覽(20)
  • Spring Cloud Gateway 過濾器

    Spring Cloud Gateway 過濾器

    Spring Cloud Gateway 過濾器的種類有30多種。 官文文檔地址: Spring Cloud Gateway https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories Spring Cloud Gateway大體可以分為下面兩種類型的過濾器: 1、內(nèi)置的過濾器 ? ? ? ? 1.1、內(nèi)置的局部過濾器 ? ? ? ? 1.2、內(nèi)置的全

    2024年03月28日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包