springboot結合oauth2實現許可權認證

2021-10-09 20:33:25 字數 1794 閱讀 7501

1.什麼是jwt

json web token (jwt), 是為了在網路應用環境間傳遞宣告而執行的一種基於json的開放標準((rfc 7519).該token被設計為緊湊且安全的,特別適用於分布式站點的單點登入(sso)場景。jwt的宣告一般被用來在身份提供者和服務提供者間傳遞被認證的使用者身份資訊,以便於從資源伺服器獲取資源,也可以增加一些額外的其它業務邏輯所必須的宣告資訊,該token也可直接被用於認證,也可被加密。

2.優點

體積小、傳輸快

支援跨域授權,因為跨域無法共享cookie

分布式系統中,很好地解決了單點登入問題

3.使用場景

1. 認證,這是比較常見的使用場景,只要使用者登入過一次系統,之後的請求都會包含簽名出來的token,通過token也可以用來實現單點登入。

2. 交換資訊,通過使用金鑰對來安全的傳送資訊,可以知道傳送者是誰、放置訊息被篡改。

ssh:

5.整合過程

(1)匯入sql表,我把sql檔案放在下圖所示位置

sql檔案

(2)新增依賴

依賴(3)主體有5個檔案需要新增,分別是shiroconfig、oauth2filer配置、oauth2realm、oauth2token、tokengenerator

具體**如下

* @program: xiaowu

* @description: shiro配置

* @author: wu

* @create: 2020-08-29 09:46

@configuration

public class shiroconfig catch (ioexception e1) else catch (parseexception e) catch (exception e) {

throw new runtimeexception("生成token失敗", e);

4.測試(這裡以登入介面驗證為例)

登入介面

實現層**

實現層

xml檔案

postman測試

測試

mysql

介面許可權已經完成,剩下的就是根據過期時間的業務**,當然這個token加密演算法比較簡單,我們可以更換加密演算法,這以後再完善

rabbitMQ結合spring boot使用三

在消費端,我們的消費 是執行在 容器之中的 listenercontainer springboot 給我們提供了兩個 容器 messagelistenercontainer和directmessagelistenercontainer在配置檔案中凡是以spring.rabbitmq.listene...

spring boot結合cache快取

spring3.1開始引入了激動人心的快取 cache 技術,其中包含 cacheable cacheput cacheevict主要方法 cacheable 作用和配置方法 引數解釋 example value 快取的名稱,在 spring 配置檔案中定義,必須指定至少乙個 例如 cacheabl...

springBoot 結合 Vue專案跨域問題

在springboot專案中新增乙個配置類import org.springframework.context.annotation.bean import org.springframework.context.annotation.configuration import org.springf...