Shiro入門學習與實戰(一)

2022-09-17 01:39:08 字數 2272 閱讀 2139

apache shiro是j**a 的乙個安全框架,主要提供:認證、授權、加密、會話管理、與web整合、快取等功能,其不依賴於spring即可使用;

spring security(oauth2)也是乙個開源的許可權框架,但其依賴於spring執行,功能相對強大;而shiro相對獨立,不依賴於spring,使用簡單、靈活,所以我選擇shiro學習。哈哈~

①authentication(音標: [ɔːˌθentɪˈkeɪʃn] )

身份認證,驗證使用者是不是擁有相應的身份。

②authorization(音標:[ˌɔːθərəˈzeɪʃn])

授權即許可權驗證,驗證某個已認證的使用者是否擁有某個許可權(比如接下來我要實現的:不用使用者擁有不用的選單樹)

③session management

會話管理,在使用者登入後,退出之前,所有資訊都存在於會話中(這裡可以用於sso單點登入)

④crptography

加密,保護資料的安全性(比如密碼加密儲存到資料庫,而不是明文儲存)

⑤web支援

非常容易整合到web環境

⑥caching

快取,比如使用者登入後,其使用者資訊、擁有的角色/許可權不必每次去查,這樣可以提高效率

⑦concurrency

shiro支援多執行緒應用寶併發驗證,(即在乙個執行緒中開啟另乙個執行緒,能把許可權自動傳播過去)

⑧testing

提供測試支援

⑨run as

允許乙個使用者假裝為另乙個使用者(如果他們允許)的身份進行訪問;

⑩remember me

記住我,這是最常見的功能,即一次登入後,下次再來的話不用登入了

注:shiro不會去維護使用者、維護許可權,所以這是我們需要設計的,然後通過相應的介面注入shiro即可。

看來看去,也就以上幾個模組嘛:

①subject

subject即主體,外部應用與subject進行互動,subject記錄了當前操作使用者,將使用者的概念理解為當前操作的主體,可能是乙個通過瀏覽器請求的使用者,也可能是乙個執行的程式。subject在shiro中是乙個介面,介面中定義了很多認證授權的相關方法,外部程式通過subject進行認證授權,而subject是通過security manager安全管理器進行認證授權。

②securitymanager

安全管理器:對全部的subject進行安全管理,它是shiro的核心,負責對所有的subject進行安全管理,通過securitymanger可以完成subject的認證、授權等,實質上securitymanger是通過authenticator(圖中圈3)進行認證;通過authorizer(圖中圈4)進行授權,通過sessionmanager進行會話管理等,securitymanger是乙個介面,繼承authenticator,authorizer,sessionmanager三個介面。

③authenticator

認證器:對使用者身份進行認證,authenticator是乙個介面,shiro提供modularrealmauthenticator實現類,通過該實現類基本上滿足大部分需求,也可自定義認證器

④authorizer

授權器:使用者通過認證器認證通過,在訪問功能時需要通過授權器判斷使用者是否有此功能的操作許可權

⑤realm

領域:相當於datasource資料來源,securitymanager進行安全認證需要通過realm獲取使用者許可權資料,比如:如果使用者身份在資料庫,那麼realm就需要從資料庫獲取使用者身份資訊。(這裡不要單單認為realm只是從資料來源取資料,它還有認證授權校驗的相關**)

⑥sessionmanger

會話管理:shiro框架定義了一套會話管理,它不依賴於web的session,所以shiro可以使用在非web的應用上;還可以將分布式應用的會話集中在一點管理,實現sso單點登入

⑦sessiondao

會話dao:顧名思義,對session的一套api介面,也就是對session的增刪改查

快取管理,將使用者許可權資料儲存在快取,這樣可以提高效能

加密:shiro提供了一套加密、解密元件,方便開發。比如提供常用的雜湊、加/解密等功能。

了解了基本的功能、架構等,是時候操練一把了……

(1)shiro實現認證+shiro.ini配置:shiro入門學習之shi.ini實現認證及原始碼分析(二)

shiro入門學習二

shiro是 apache 的乙個開源框架,是乙個許可權管理的框架,實現 使用者認證 使用者授權。spring中有 spring security 原名acegi 是乙個許可權框架,它和 spring 依賴過於緊密,沒有 shiro 使用簡單。shiro不依賴於 spring shiro 不僅可以實...

Shiro學習筆記(1) shiro入門

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!licensed to the apache software foundation asf under one or more contributor license agreements.see the notice file distribu...

shiro學習 二 入門認證

使用 test 完成最基本簡單的認證流程。1 建立 securitymanager 2 主體 subject 提交請求 3 securitymanager 認證 4 authenticator 認證 5 realm 驗證 org.apache.shiro shiro core 1.6.0 junit...