最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud Webflux過濾器增加header傳遞方式

 更新時間:2023年02月14日 09:54:46   作者:低頭確望水中月亮  
這篇文章主要介紹了SpringCloud Webflux過濾器增加header傳遞方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Webflux過濾器增加header傳遞

webflux 使用異步非阻塞的方式,傳遞Header還需要我們自己增加代碼傳遞:

定義過濾器,便攜下面的配置可以嘗試一下header的傳遞到后面的服務中。

@Component
public class AuthorizationFilter implements WebFilter {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
        ServerHttpRequest mutatedRequest = exchange.getRequest().mutate().header(HttpHeaders.AUTHORIZATION, "Bearer " + authHeader).build();
        ServerWebExchange mutatedExchange = exchange.mutate().request(mutatedRequest).build();
        return chain.filter(mutatedExchange);
    }
}
 
 
## Kotlin 的方式
@Component
class AuthorizationFilter : WebFilter {
    override fun filter(exchange: ServerWebExchange, chain: WebFilterChain): Mono<Void> {
        val mutatedRequest = exchange.request.mutate().header(HttpHeaders.AUTHORIZATION, "Bearer $authHeader").build()
        val mutatedExchange = exchange.mutate().request(mutatedRequest).build()
        return chain.filter(mutatedExchange)
    }
}

Webflux過濾器使用

下面是簡單處理token的例子

@Component
@Order(value = 2)
public class AuthFilter implements WebFilter {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
        ServerHttpRequest request =  exchange.getRequest();
        //ServerHttpResponse response =  exchange.getResponse();

        String token = request.getHeaders().getFirst("token");
        if(null == token){
                /*http頭中沒有appKey,修改請求的目標url為/auth/error
                  request.mutate返回一個請求構建器(builder design pattern),path方法修改請求的url,build方法返回新的request
               */
            ServerHttpRequest authErrorReq = request.mutate().path("/auth/error").build();
            //erverWebExchange.mutate類似,構建一個新的ServerWebExchange
            ServerWebExchange authErrorExchange = exchange.mutate().request(authErrorReq).build();
            return chain.filter(authErrorExchange);
        } else{ 
            return chain.filter(exchange);
        }
    }
}

webFlux將指定的錯誤信息通過json格式返回給前端

exchange.getResponse().writeWith(Flux.just(exchange.getResponse().bufferFactory().wrap(JsonUtil.toJson(new BaseErrorVO().fail(e.getMessageCode(),e.getSystemMessage())).getBytes())));

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • springboot aspect通過@annotation進行攔截的實例代碼詳解

    springboot aspect通過@annotation進行攔截的實例代碼詳解

    這篇文章主要介紹了springboot aspect通過@annotation進行攔截的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java中DTO與Entity拷貝轉換的方法小結

    Java中DTO與Entity拷貝轉換的方法小結

    在?Java?開發(fā)中,DTO(Data?Transfer?Object)和?Entity(實體類)是常見的兩種數(shù)據(jù)模型,本文將介紹幾種常見的工具類和自定義方式來實現(xiàn)這種轉換,感興趣的可以了解下
    2025-02-02
  • 一次Spring無法啟動的問題排查實戰(zhàn)之字節(jié)碼篇

    一次Spring無法啟動的問題排查實戰(zhàn)之字節(jié)碼篇

    最近學習了spring相關知識,公司項目也用到了spring,下面這篇文章主要給大家介紹了一次Spring無法啟動的問題排查實戰(zhàn)之字節(jié)碼篇的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • ArrayList和JSONArray邊遍歷邊刪除到底該如何做

    ArrayList和JSONArray邊遍歷邊刪除到底該如何做

    這篇文章主要介紹了ArrayList和JSONArray邊遍歷邊刪除到底該如何做,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java中實現(xiàn)List分隔成子List詳解

    Java中實現(xiàn)List分隔成子List詳解

    大家好,本篇文章主要講的是Java中實現(xiàn)List分隔成子List詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java實戰(zhàn)之圖書管理系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)之圖書管理系統(tǒng)的實現(xiàn)

    這篇文章主要介紹了如何利用Java語言編寫一個圖書管理系統(tǒng),文中采用的技術有Springboot、SpringMVC、MyBatis、ThymeLeaf 等,需要的可以參考一下
    2022-03-03
  • Java經(jīng)典面試題匯總:異常

    Java經(jīng)典面試題匯總:異常

    本篇總結的是Java異常相關的面試題,后續(xù)會持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實習生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • 詳解Java中clone的寫法

    詳解Java中clone的寫法

    這篇文章主要介紹了Java中clone的寫法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • SpringCloud-Alibaba-Nacos啟動失敗解決方案

    SpringCloud-Alibaba-Nacos啟動失敗解決方案

    這篇文章主要介紹了SpringCloud-Alibaba-Nacos啟動失敗解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • java 生成文字圖片的示例代碼

    java 生成文字圖片的示例代碼

    本篇文章主要介紹了java 生成文字圖片的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論

陈巴尔虎旗| 南开区| 柳州市| 依兰县| 镇赉县| 桂林市| 贺州市| 武宣县| 清新县| 宁南县| 内乡县| 博野县| 屏东市| 海兴县| 巴塘县| 陈巴尔虎旗| 习水县| 广州市| 新巴尔虎左旗| 石城县| 望都县| 文昌市| 收藏| 大渡口区| 弋阳县| 东辽县| 增城市| 灵丘县| 古蔺县| 临沂市| 姚安县| 闻喜县| 鹿邑县| 桃源县| 南木林县| 罗源县| 武宣县| 萨迦县| 治多县| 太仓市| 闸北区|