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

shenyu怎么處理sign鑒權(quán)前置到網(wǎng)關(guān)

 更新時(shí)間:2022年08月16日 11:14:50   作者:大雞腿同學(xué)  
這篇文章主要為大家介紹了shenyu怎么處理sign鑒權(quán)前置到網(wǎng)關(guān)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

shenyu以前叫soul網(wǎng)關(guān),我比較早關(guān)注它的,直到前不久看到它們創(chuàng)始人發(fā)的朋友圈,才知道現(xiàn)在已經(jīng)是apache頂級(jí)項(xiàng)目了,666

今天我點(diǎn)了下shenyu issue里頭逛逛,發(fā)現(xiàn)了一個(gè)老哥說(shuō)能否做到對(duì)簽名插件的擴(kuò)展,然后我就去看了shenyu里頭怎么實(shí)現(xiàn)驗(yàn)簽的

github.com/apache/shen…

加了他們創(chuàng)始人微信挺久了,也關(guān)注shenyu網(wǎng)關(guān)一段時(shí)間,因?yàn)楸旧碓诩軜?gòu)組也會(huì)接觸網(wǎng)關(guān)內(nèi)容

shenyu網(wǎng)關(guān)

shenyu跟其他網(wǎng)關(guān)一樣,都是通過(guò)責(zé)任鏈的方式,這樣可以靈活進(jìn)行擴(kuò)展,也能做到每個(gè)處理類都難處理到。

我目前項(xiàng)目也有鑒權(quán)功能,也看看別人是怎么實(shí)現(xiàn)的

鑒權(quán)sign

首先肯定是找到對(duì)應(yīng)的模塊,shenyu-plugin-sign,SignPlugin 就是網(wǎng)關(guān)處理鏈條中的一環(huán)。

@Bean
public ShenyuPlugin signPlugin(final SignService signService) {
    return new SignPlugin(signService);
}

就是你在項(xiàng)目里頭注入哪個(gè)SignService實(shí)現(xiàn)類,它會(huì)塞到這插件里頭來(lái)。

它會(huì)去判斷規(guī)則是否存在,什么規(guī)則?就是驗(yàn)證簽名的時(shí)候那些配置,比如說(shuō)多久超時(shí),哪些url要通過(guò)sign驗(yàn)簽。

但是這里也暴露了一個(gè)問(wèn)題,過(guò)度依賴配置,如果做到高可用,可以做一層backup備份,如果沒(méi)有配置,或者配置讀不到的情況下,讀取上次配置的內(nèi)容。

DefaultSignService

這里有個(gè)比較好的東西,就是會(huì)將一些內(nèi)容封裝到上下文里頭,比如說(shuō)a節(jié)點(diǎn),處理了一個(gè)東西,還要set一個(gè)特殊的key到header里面,然后讓后面的去拿,這就很不方便了,如果是放在上下文的話,這就統(tǒng)一處理。

驗(yàn)簽邏輯開始,首先是對(duì)時(shí)間做驗(yàn)證,然后再是算法驗(yàn)。

這里我要直呼一聲好家伙,exchange.getRequest().getQueryParams()直接拿到請(qǐng)求的參數(shù),如果你在服務(wù)里面實(shí)現(xiàn)那得累死你,區(qū)分post、get請(qǐng)求,需要特殊處理。

buildParamsMap(shenyuContext, requestBody)

這個(gè)map里頭有啥?加了時(shí)間戳、url、版本號(hào),請(qǐng)求參數(shù)(去除sign)

DigestUtils.md5DigestAsHex(sign.getBytes()).toUpperCase()

這里是sign簽名算法

總結(jié)

到這里,shenyu的sign插件邏輯就差不多了,直呼好家伙,跟我現(xiàn)在項(xiàng)目里頭驗(yàn)簽邏輯一毛一樣,只是簽名算法有所不同。但是這里面還是有些能優(yōu)化的點(diǎn),比如說(shuō)過(guò)度依賴shenyu現(xiàn)有的配置內(nèi)容,需要做到網(wǎng)關(guān)點(diǎn)高可用~

shenyu這里跟其他配置中心也有所不一樣,采用map來(lái)接收配置內(nèi)容,我們看nacos、apolla這些框架是刷新到eventment環(huán)境變量里頭去。

以上就是shenyu怎么處理sign鑒權(quán)前置到網(wǎng)關(guān)的詳細(xì)內(nèi)容,更多關(guān)于shenyu處理sign鑒權(quán)前置網(wǎng)關(guān)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • spring boot項(xiàng)目生成docker鏡像并完成容器部署的方法步驟

    spring boot項(xiàng)目生成docker鏡像并完成容器部署的方法步驟

    這篇文章主要介紹了spring boot項(xiàng)目生成docker鏡像并完成容器部署的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • JAVA HTTP反向代理實(shí)現(xiàn)過(guò)程詳解

    JAVA HTTP反向代理實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了JAVA HTTP反向代理實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 為了多次讀取ServletInputStream引發(fā)的一系列問(wèn)題

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

    這篇文章主要介紹了為了多次讀取ServletInputStream引發(fā)的一系列問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • MyBatis的逆向工程詳解

    MyBatis的逆向工程詳解

    這篇文章主要介紹了MyBatis的逆向工程詳解,詳細(xì)的介紹了逆行工程的概念和實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • springmvc+shiro+maven 實(shí)現(xiàn)登錄認(rèn)證與權(quán)限授權(quán)管理

    springmvc+shiro+maven 實(shí)現(xiàn)登錄認(rèn)證與權(quán)限授權(quán)管理

    Shiro 是一個(gè) Apache 下的一開源項(xiàng)目項(xiàng)目,旨在簡(jiǎn)化身份驗(yàn)證和授權(quán),下面通過(guò)實(shí)例代碼給大家分享springmvc+shiro+maven 實(shí)現(xiàn)登錄認(rèn)證與權(quán)限授權(quán)管理,感興趣的朋友一起看看吧
    2017-09-09
  • springboot優(yōu)雅獲取前端參數(shù)的方法詳解

    springboot優(yōu)雅獲取前端參數(shù)的方法詳解

    現(xiàn)在的項(xiàng)目基本上都是前后端分離的項(xiàng)目,如何打通前后端,接收前端傳過(guò)來(lái)的參數(shù)呢,這篇文章小編就來(lái)和大家詳細(xì)介紹一下springboot如何優(yōu)雅的獲取前端參數(shù)吧
    2024-03-03
  • Mybatis中的@Param及動(dòng)態(tài)SQL詳解

    Mybatis中的@Param及動(dòng)態(tài)SQL詳解

    這篇文章主要介紹了Mybatis中的@Param及動(dòng)態(tài)SQL詳解,@Param是MyBatis所提供的作為Dao層的注解,作用是用于傳遞參數(shù),從而可以與SQL中的的字段名相對(duì)應(yīng),需要的朋友可以參考下
    2023-10-10
  • java中怎樣表示圓周率

    java中怎樣表示圓周率

    這篇文章主要介紹了java中怎樣表示圓周率問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • spring結(jié)合struts的代碼詳解

    spring結(jié)合struts的代碼詳解

    這篇文章主要介紹了spring結(jié)合struts的代碼詳解,需要的朋友可以參考下
    2017-09-09
  • Java移位運(yùn)算符詳解實(shí)例(小結(jié))

    Java移位運(yùn)算符詳解實(shí)例(小結(jié))

    這篇文章主要介紹了Java移位運(yùn)算符詳解實(shí)例(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論

西青区| 阳春市| 清新县| 恩平市| 泸西县| 喀喇沁旗| 德安县| 安陆市| 陵水| 洱源县| 无为县| 安国市| 方城县| 呼伦贝尔市| 绩溪县| 重庆市| 塔河县| 花垣县| 科尔| 盖州市| 安丘市| 新兴县| 自治县| 西和县| 马鞍山市| 平远县| 南陵县| 余庆县| 南江县| 舞钢市| 杭锦旗| 资阳市| 涟源市| 孟津县| 襄汾县| 兴义市| 光山县| 靖宇县| 醴陵市| 伊通| 滨海县|