SpringCloud 框架基本模組梳理 (二)

2021-10-04 05:01:54 字數 2669 閱讀 8683

前言

本週更新的慢了一點,內容其實也不多。本篇接上篇來聊一下gateway的鑑權。這個詞比較晦澀,要是說成介面訪問許可權校驗沒準顯得直白一些。

一、元件版本介紹

jwt 3.4 (新晉成員)

redis

二、核心步驟

(關於jwt的使用可以參閱各大論壇大佬的帖子,這裡就不過多的展開,只講方法,不擴充套件)

1、生成token

核心方法如下:

jwt.

create()

.withaudience

(user.

getid()

.tostring()

).sign

(algorithm.

hmac256

(user.

getpassword()

))

2、校驗token

核心方法如下:

jwtverifier jwtverifier = jwt.

require

(algorithm.

hmac256

(user.

getpassword()

)).build()

;

jwtverifier.

verify

(token)

;

三、插話

要不順帶提一下redis的配置方式,以及簡單的使用。。。

jar包需要引入

org.springframework.data<

/groupid>

spring-data-redis<

/artifactid>

<

/dependency>

redis.clients<

/groupid>

jedis<

/artifactid>

2.9.3

<

/version>

<

/dependency>

配置檔案中需要宣告redis的服務位址(此處省略了redis的配置說明,找起來也容易的)

在預設的配置下,使用org.springframework.data.redis.core.redistemplate,主要方法有兩個:opsforcluster 和 delete ,兩者都接收乙個string型的引數,前者做存,後者做刪除,當然還有個重要的過期時間設定 expire()方法,接收三個引數(object-通常是redis裡的key值,timeout-過期時間,timeunit.milliseconds-時間單位)—不建議在併發下使用。

四、效果展示

本次就沒有效果展示了,貼一下token驗證的**吧。

// 如果不是對映到方法直接通過if(

!(object instanceof

handlermethod))

handlermethod handlermethod=

(handlermethod)object;

method method=handlermethod.

getmethod()

;//檢查是否有passtoken注釋,有則跳過認證

if(method.

isannotationpresent

(passtoken.

class))

}//檢查有沒有需要使用者許可權的註解

if(method.

isannotationpresent

(userlogintoken.

class))

// 獲取 token 中的 user id

integer userid;

trycatch

(jwtdecodeexception j)

testuser user = userservice.

finduserbyid

(userid);if

(user == null)

// 驗證 token

jwtverifier jwtverifier = jwt.

require

(algorithm.

hmac256

(user.

getpassword()

)).build()

;try

catch

(jwtverificationexception e)

return

true;}

}return

false

;}這就是jwt使用最重要的部分了,實際應用中,可以將獲取的token存放至redis中,在過期時間內重複的校驗都是ok的。

五、結語

(這一周有點懶散,見諒!)

SpringCloud 框架基本模組梳理(四)

一 前言 本篇將同時講一下服務間的呼叫和訊息中介軟體的使用。我們會簡單的了解一下cloud框架體系中自帶的feign完成服務間通訊的例子 詳情請移步官網文件 openfeign 還會初步探索一下stream rabbit的使用 官方文件 stream 二 feign cloud自帶的服務間的通訊機制...

SpringCloud 框架基本模組梳理(三)

前言 在gateway的官方文件中,分兩種過濾器 全域性過濾和路由過濾。本次採用全域性過濾來輔助完成鑑權 component public class filter implements globalfilter 暫時定義鑑權邏輯 有token就通過並重新整理,沒有就直接不允許 這裡借助了globa...

spring cloud 基礎框架模板

zuul閘道器集群 各模組微服務集群 nginx實現負載均衡 spring cloud config 統一配置中心 monitor微服務監控 獲得 響應如下 注意 授權許可權認證來自micro service skeleton auth的usercontroller 控制台輸入 userdetail...