使用者角色許可權系統完整設計(基於shiro)
一:shiro簡介
1.1:shiro可以幫助我們完成:認證,授權,加密,會話管理,與web整合,快取等。shiro不會去維護使用者沒維護許可權。這些需要我們自己設計提供,然後通過想應的介面注入給shiro。
1.2:shiro的API簡單介紹
Authentication : 身份認證/登入,驗證使用者是不是擁有想應的身份。
Authorization:授權,即許可權驗證,驗證某個已認證的使用者是否擁有某個許可權;即判斷使用者是否能做事情,常見的如,驗證某個使用者是否擁有某個角色,或者細粒度驗證某個使用者對某個資源是否具有某個許可權。
Sessin Manager 會話管理,即使用者登陸後就是一次會話,在沒有退出之前,他的所有資訊都在會話中;會話可以是普通javase環境,也可以是web環境。
Cryptography: 加密,保護資料的安全性,如密碼加密儲存到資料庫,而不是銘文儲存。
Web Support : Web支援,可以非常容易的整合到web環境
Caching:快取,比如使用者登陸後,其使用者資訊,擁有的角色/許可權不用每次去查,可以提高效率。
Concurrency:shiro支援多執行緒應用的併發驗證,即如在一個執行緒中開啟另一個執行緒,能把許可權自動傳播過去;
Testing: 提供測試支援。
Run As 允許使用者假裝為另一個使用者的身份進行訪問。
Remember Me 記住我,這是一個常見功能,即一次登陸後,下次再來的話就不用登入了。
1.3:從應用程式角度解析shiro工作過程.
應用程式碼直接互動物件Subject
Subject:主體,代表當前使用者。與當前應用互動的任何東西都是Subject,如網路爬蟲,機器人等。所有Subject都繫結到SecurityManager,與Subject的所有互動都會委託給SecurityManager;可以把Subject認為是一個門面;SecurityManager才是實際執行者。
SecurityManager: 安全管理器;即所有與安全有關的操作都會與SecurityManager互動;且它管理者所有Subject;他是Shiro的核心,它負責後面介紹的其他元件進行互動。
Realm:域。Shiro從Realm獲取安全資料(使用者,角色,許可權),就是說SecurityManager要驗證使用者身份,那麼他需要從Realm獲取想應得使用者進行比較以確定身份是否合法。;也需要才Realm得到使用者相應的角色/許可權驗證使用者是否能進行操作。
1.4 最簡單的Shiro應用:
1、應用程式碼通過Subject來進行認證和授權,而Subject又委託給SecurityManager;
2、我們需要給Shiro的SecurityManager注入Realm,從而讓SecurityManager能得到合法的使用者及其許可權進行判斷。
1.5 從Shiro內部來看Shiro架構
相關文章
- Rbac使用者角色許可權表設計
- shiro教程(1):基於url許可權管理
- 基於Spring Security和 JWT的許可權系統設計SpringJWT
- 基於vue(element ui) + ssm + shiro 的許可權VueUISSM
- 許可權系統:許可權應用服務設計
- 關於系統許可權的設計-位操作
- 基於vue(element ui) + ssm + shiro 的許可權框架VueUISSM框架
- 許可權系統:許可權應用服務設計Tu
- 許可權系統:6個許可權概念模型設計模型
- 基於RBAC的許可權管理系統
- 基於RBAC的許可權設計模型模型
- Shiro許可權框架框架
- shiro許可權控制
- Oracle使用者角色許可權管理Oracle
- 基於位運算的許可權設計
- 使用者角色許可權管理架構架構
- Asp.net core IdentityServer4與傳統基於角色的許可權系統的整合ASP.NETIDEServer
- Quarkus中基於角色的許可權訪問控制教程
- 基於Spring Security實現許可權管理系統Spring
- SAP Basis DEBUG改表資料許可權角色設計
- 基於tp3.2.3開發的許可權管理系統,路由,微信,cdn,許可權路由
- 基於SSM框架的JavaWeb通用許可權管理系統SSM框架JavaWeb
- 基於tp3.2.3 的許可權管理系統更新
- 許可權設計
- 分散式系統中,許可權設計實踐分散式
- Spring Security + jwt 許可權系統設計,包含SQLSpringJWTSQL
- Shiro許可權管理框架(一):Shiro的基本使用框架
- Linux系統程式設計(七)檔案許可權系統呼叫Linux程式設計
- springboot-許可權控制shiro(二)Spring Boot
- SpringBoot與Shiro整合-許可權管理Spring Boot
- 許可權框架之Shiro詳解框架
- Spring Boot:整合Shiro許可權框架Spring Boot框架
- Spring MVC 整合 Shiro 許可權控制SpringMVC
- 許可權系統:一文搞懂功能許可權、資料許可權
- 通用許可權系統之資料庫表設計資料庫
- learun通用許可權系統框架功能實現設計框架
- 手把手擼套框架-許可權系統設計框架
- 管理系統之許可權的設計和實現
- Laravel——使用者角色許可權控制包 Laravel-permissionLaravel