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

springCloud gateWay 統(tǒng)一鑒權(quán)的實現(xiàn)代碼

 更新時間:2022年02月23日 09:31:22   作者:vegetari  
這篇文章主要介紹了springCloud gateWay 統(tǒng)一鑒權(quán)的實現(xiàn)代碼,統(tǒng)一鑒權(quán)包括鑒權(quán)邏輯和代碼實現(xiàn),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下

一,統(tǒng)一鑒權(quán)

內(nèi)置的過濾器已經(jīng)可以完成大部分的功能,但是對于企業(yè)開發(fā)的一些業(yè)務(wù)功能處理,還是需要我們自己 編寫過濾器來實現(xiàn)的,那么我們一起通過代碼的形式自定義一個過濾器,去完成統(tǒng)一的權(quán)限校驗。

1.1 鑒權(quán)邏輯

開發(fā)中的鑒權(quán)邏輯:

  • 當(dāng)客戶端第一次請求服務(wù)時,服務(wù)端對用戶進(jìn)行信息認(rèn)證(登錄)
  • 認(rèn)證通過,將用戶信息進(jìn)行加密形成token,返回給客戶端,作為登錄憑證
  • 以后每次請求,客戶端都攜帶認(rèn)證的token
  • 服務(wù)端對token進(jìn)行解密,判斷是否有效。

如上圖,對于驗證用戶是否已經(jīng)登錄鑒權(quán)的過程可以在網(wǎng)關(guān)層統(tǒng)一檢驗。檢驗的標(biāo)準(zhǔn)就是請求中是否攜 帶token憑證以及token的正確性。

1.2 代碼實現(xiàn)

下面的我們自定義一個GlobalFilter,去校驗所有請求的請求參數(shù)中是否包含“token”,如何不包含請求 參數(shù)“token”則不轉(zhuǎn)發(fā)路由,否則執(zhí)行正常的邏輯。

/**
 * 自定義一個全局過濾器
 *         實現(xiàn)globalfilter,ordered接口
 */
@Component
public class LoginFilter implements GlobalFilter, Ordered {
 
    /**
     * 執(zhí)行過濾器中的過濾邏輯
     * @param exchange
     * @param chain
     * @return
     */
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        String token = exchange.getRequest().getQueryParams().getFirst("access-token");
        if (token == null){
            //如果為null,認(rèn)證失敗
            System.out.println("沒有登錄");
            exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
            return exchange.getResponse().setComplete();
        }
        System.out.println("觸發(fā)了全局過濾器!");
        return chain.filter(exchange);
    }
     * 指定過濾器執(zhí)行順序,返回值越小,執(zhí)行優(yōu)先級越高
    public int getOrder() {
        return 0;
}
  • 自定義全局過濾器需要實現(xiàn)GlobalFilter和Ordered接口。
  • 在filter方法中完成過濾器的邏輯判斷處理
  • 在getOrder方法指定此過濾器的優(yōu)先級,返回值越大級別越低
  • ServerWebExchange 就相當(dāng)于當(dāng)前請求和響應(yīng)的上下文,存放著重要的請求-響應(yīng)屬性、請求實 例和響應(yīng)實例等等。一個請求中的request,response都可以通過 ServerWebExchange 獲取
  • 調(diào)用 chain.filter 繼續(xù)向下游執(zhí)行

此時,如果我們請求的參數(shù)里沒有access-token 參數(shù),就會直接展示報錯頁面

如果有access-token 參數(shù),就會正常返回。

到此這篇關(guān)于springCloud gateWay 統(tǒng)一鑒權(quán)的文章就介紹到這了,更多相關(guān)springCloud gateWay 統(tǒng)一鑒權(quán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IntelliJ IDEA 安裝目錄的核心文件的功能及用法

    IntelliJ IDEA 安裝目錄的核心文件的功能及用法

    這篇文章我們主要講解一下 IntelliJ IDEA 安裝目錄中的一些核心文件的功能及用法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-10-10
  • java中的類型擦除type?erasure示例詳解

    java中的類型擦除type?erasure示例詳解

    泛型是java從JDK?5開始引入的新特性,泛型的引入可以讓我們在代碼編譯的時候就強(qiáng)制檢查傳入的類型,從而提升了程序的健壯度,泛型可以用在類和接口上,在集合類中非常常見,本文將會講解泛型導(dǎo)致的類型擦除
    2023-09-09
  • intellij idea中安裝、配置mybatis插件Free Mybatis plugin的教程詳解

    intellij idea中安裝、配置mybatis插件Free Mybatis plugin的教程詳解

    這篇文章主要介紹了intellij idea中安裝、配置mybatis插件Free Mybatis plugin的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • kotlin之協(xié)程的理解與使用詳解

    kotlin之協(xié)程的理解與使用詳解

    這篇文章主要介紹了kotlin之協(xié)程的理解與使用詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java DefaultListableBeanFactory接口超詳細(xì)介紹

    Java DefaultListableBeanFactory接口超詳細(xì)介紹

    這篇文章主要介紹了Java DefaultListableBeanFactory接口,DefaultListableBeanFactory是整個bean加載的核心部分,是Spring注冊機(jī)加載bean的默認(rèn)實現(xiàn)
    2022-11-11
  • Java使用sftp定時下載文件的示例代碼

    Java使用sftp定時下載文件的示例代碼

    SFTP 為 SSH的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。接下來通過本文給大家介紹了Java使用sftp定時下載文件的示例代碼,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-05-05
  • Spring Boot Redis客戶端遠(yuǎn)程操作實現(xiàn)過程解析

    Spring Boot Redis客戶端遠(yuǎn)程操作實現(xiàn)過程解析

    這篇文章主要介紹了Spring Boot Redis客戶端遠(yuǎn)程操作實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 純Java實現(xiàn)數(shù)字證書生成簽名的簡單實例

    純Java實現(xiàn)數(shù)字證書生成簽名的簡單實例

    下面小編就為大家?guī)硪黄僇ava實現(xiàn)數(shù)字證書生成簽名的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 為了多次讀取ServletInputStream引發(fā)的一系列問題

    為了多次讀取ServletInputStream引發(fā)的一系列問題

    這篇文章主要介紹了為了多次讀取ServletInputStream引發(fā)的一系列問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Mybatis-plus基于redis實現(xiàn)二級緩存過程解析

    Mybatis-plus基于redis實現(xiàn)二級緩存過程解析

    這篇文章主要介紹了Mybatis-plus基于redis實現(xiàn)二級緩存過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08

最新評論

扶沟县| 平和县| 淮滨县| 玉林市| 乌兰浩特市| 青浦区| 务川| 邻水| 元阳县| 武冈市| 吴旗县| 布拖县| 驻马店市| 江安县| 徐水县| 万安县| 礼泉县| 绍兴市| 太保市| 嵊泗县| 普宁市| 东安县| 南充市| 陵川县| 巴塘县| 宁城县| 望城县| 延安市| 百色市| 台前县| 虎林市| 嘉定区| 临颍县| 静海县| 铜山县| 大足县| 上杭县| 临汾市| 巫溪县| 台东市| 萨嘎县|