Soul原始碼總結 02 01

2021-10-18 16:51:33 字數 2280 閱讀 2386

首先啟動專案soul-admin以及soul-bootstrap,以soul-examples中的soul-example-http為例,註冊到soul閘道器上。記得檢查soul-bootstrap是否引入sign外掛程式相關依賴

>

>

org.dromaragroupid

>

>

soul-spring-boot-starter-plugin-signartifactid

>

>

$version

>

dependency

>

同時在soul-admin外掛程式管理中心開啟sign外掛程式。

同時在認證管理一欄新增相關資料

新增成功後可以看到生成的ak(access key)sk(secret key)

同時需要配置selectorrule

selector規則:

rule規則:

同時可以參考soul官方的示例**構造signkey的服務soul-鑑權技術實現 (

"/signkey"

)public string signkey()

)).sorted

(comparator.

naturalorder()

).collect

(collectors.

tolist()

);final string sign = storedkeys.

stream()

.map

(key -

> string.

join(""

, key, map.

get(key)))

.collect

(collectors.

joining()

).trim()

// secret key from soul-admin

.concat

("97d3f9978cbc486f929b49c420311522");

return digestutils.

md5digestashex

(sign.

getbytes()

).touppercase()

;}通過訪問http://localhost:8188/signkey拿到對應的signkey

如果直接訪問http://localhost:9195/http/order/findbyid?id=1,則會得到401訊息

此時在http header中增加相關的authorize資訊

如果超時5min,則返回相關資訊如下

如果sign錯誤,返回相關資訊如下:

string sigkey = signutils.

generatesign()

,buildparamsmap

(soulcontext));

boolean result = objects.

equals

(sigkey, soulcontext.

getsign()

);

以上則是關於sign外掛程式的應用例項和原始碼分析。和其他外掛程式相比,sign外掛程式的邏輯相對簡單,比較容易理解,本質上就是起到乙個簽名驗證鑑權的功能。

Soul原始碼總結 01 20

總結首先啟動soul admin和soul bootstrap專案,在soul bootstrap控制台日誌會發現 soul admin與soul閘道器預設建立websocket通訊,那麼具體在 中是如何實現的呢?soul sync websocket urls ws localhost 9095 ...

Soul原始碼總結 01 22

總結 不要忘記檢查pom.xml中是否加入相關依賴項 啟動soul admin和soul bootstrap專案,在soul bootstrap控制台看到以下日誌 說明此時http長輪詢同步機制建立成功.soul閘道器http長輪詢機制可以參考官網的圖示以及說明 soul http long pol...

Soul原始碼總結 01 26

divideplugin主要soul閘道器處理http protocol的主要外掛程式,當有http請求打到soul閘道器的時候,soulwebhandler會執行divideplugin來對http請求做相應的處理。divideplugin做的處理主要是對http請求進行 主要原理是根據不同的負載...