第一節 身份認證的基本流程

2021-08-15 01:45:02 字數 2182 閱讀 6067

學習完孤傲蒼狼和濤哥的部落格,覺得分享知識是一種進步,原因很簡單:能把別人教會了的部落格,一定是好部落格。我始終相信,寫部落格的受益者之一永遠都有自己。

subject:主體,用來與使用者互動的物件。它其實是乙個門面物件,專門用於管理來自客戶端的資料。比如客戶端傳來了一批帳號密碼資料,它需要將這批資料傳入shiro的內部核心securitymanager中,以驗證帳號密碼是否正確。再比如,判斷當前使用者是否有相關的角色,subject會去問問內部的securitymanager,這個人是「小學生角色」嗎?

***理解就是:subject就是乙個拉客滴,它知道本會所提供的所有服務。來了一批客人,它需要將客人引進到securitymanager中進行服務,所以說securitymanager是shiro底層的核心

securitymanager:安全中心,它相當於「使用者資訊」與「資料來源」的中間者。使用者資訊指使用者在web頁面上輸入的資料,通常指 使用者名稱、郵箱、密碼、手機號等。 「資料來源」指資料庫中存放的資料。    securitymanager的作用就是把「使用者資訊」拿去與「資料來源」比對,看「使用者資訊」是不是存在於「資料來源」中。

realm:資料來源。shiro從資料庫中查詢一些資料,儲存在realm這種物件中。shiro會把從subject中獲取的資料與realm的資料進行對比,從而確定客戶端傳來的帳號密碼是否正確。

流程如下:

步驟一:shiro把使用者的資料封裝成標識token,token一般封裝著使用者名稱,密碼等資訊。

步驟二:使用subject門面獲取到封裝著使用者的資料的標識token

步驟三:subject把標識token交給securitymanager,在securitymanager安全中心中,securitymanager把標識token委託給認證器authenticator進行身份驗證。認證器的作用一般是用來指定如何驗證,它規定本次認證用到哪些realm。

步驟四:認證器authenticator將傳入的標識token,與資料來源realm對比,驗證token是否合法。

從**的層面來理解:subject物件其實是乙個門面類,它能夠執行非常多的操作,例如認證授權使用者退出。但是它實際上將這些操作委託給內部的securitymanager去做。簡單點說,subject的底層實現就是securitymanager。

public class subject ...

private securitymanager  securitymanager;

public  void  我們有按摩服務()

首先匯入shiro的依賴。

junit

junit

4.9

commons-logging

commons-logging

1.1.3

org.apache.shiro

shiro-core

1.2.2

編寫junit測試用例 

public class myfirsttest 

}

僅僅寥寥幾行**就能展現出大佬的**風範。首先使用工廠設計模式,通過乙個工廠返回乙個securitymanager例項。再者,subject物件負責與使用者互動,接收客戶端資料,將資料封裝好後委託給內部的securitymanager物件,上述步驟則是門面設計模式的體現,subject是門面,securitymanager是底層核心。

最後編寫我們的shiro配置檔案  shiro_1.ini。

shiro_1.ini配置檔案內容如下,它就是資料來源realm。

[users]

jay=123

閱讀更多:跟著大宇學shiro目錄貼

第一節,ZYNQ開發流程

zynq的開發也是先硬體後軟體的方法。具體流程如下 1 在vivado上新建工程,增加乙個嵌入式的原始檔。2 在vivado裡新增和配置ps和pl部分基本的外設,或需要新增自定義的外設。3 在vivado裡生成頂層hdl檔案,並新增約束檔案。再編譯生成位元流檔案system.bit。4 匯出到sdk...

第一節綜述

shader是什麼?shader是著色器。渲染流水線的概念?渲染流水線的工作任務在於由乙個三維場景出發,生成一張二維影象。渲染流程分為3個階段 應用階段 幾何階段 光柵化階段。1 應用階段 由cpu負責實現,由開發者主導。最重要的輸出是渲染所需的幾何資訊,即渲染圖元。這些渲染圖元傳遞給幾何階段。2 ...

第一節 熱機

一.熱機 內燃機是熱機的一種,以汽油或柴油為燃料 二.汽油機 練1.三.柴油機 練2.從能量轉化的角度看,一台四衝程內燃機在乙個迴圈中 1 哪個衝程存在著化學能轉化為內能的過程?2 哪個衝程存在著內能轉化為機械能的過程?3 哪個衝程具有很明顯的機械能轉化為內能的過程?練3.關於單缸四衝程內燃機,下列...