初始Shiro

Shiro 關於

Apache Shiro 是一個強大易用的 Java 安全框架,提供了認證、授權、加密和會話管理等功能,對於任何一個應用程序,Shiro 都可以提供全面的安全管理服務。並且相對於 Spring Security安全框架,Shiro 要簡單的多。

shiro可以幹什麼

Shiro 可以幫助我們完成:認證、授權、加密、會話管理、與 Web 集成、緩存等

shiro功能

在這裏插入圖片描述

  • Authentication:身份認證/登陸 ,驗證用戶擁有應有的身份,

  • Authorization:授權,權限授權,即用戶擁有的角色,或者是說他擁有哪些授權- -

  • Session Managemengt :會話管理,即用戶登錄後就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通 JavaSE 環境的,也可以是如 Web 環境的;

  • Cryptography:加密,保護數據的安全性(MD5/),如密碼加密存儲到數據庫,而不是明文存儲;

  • Web Support:Web 支持,可以非常容易的集成到 Web 環境;

  • Caching:緩存,比如用戶登錄後,其用戶信息、擁有的角色 / 權限不必每次去查,這樣可以提高效率;

  • Concurrency:shiro 支持多線程應用的併發驗證,即如在一個線程中開啓另一個線程,能把權限自動傳播過去;

  • Testing:提供測試支持;

  • Run As:允許一個用戶假裝爲另一個用戶(如果他們允許)的身份進行訪問;

  • Remember Me:記住我,這個是非常常見的功能,即一次登錄後,下次再來的話不用登錄了。

記住一點,Shiro 不會去維護用戶、維護權限;這些需要我們自己去設計 / 提供;然後通過相應的接口注入給 Shiro 即可。

在這裏插入圖片描述

  • Subject是外部應用與subject進行交互,subject記錄用戶當前的,與當前應用交互的任何東西都是 Subject,咱們可以把它當做一個瀏覽器請求的用戶,也可以是一個應用程序,subject在shrio中是一個接口,接口定義了很多的方法外部程序通過subject進行認證,而subject江所有的交互都交給Security manager(安全管理器)
  • SecurityManager 安全管理 ,即所有與安全有關的操作都會與安全管理器交互,並且管理所有的subject,他是shrio的核心
  • realm 域 shiro從Realm獲取安全數據(用戶 角色 權限) 就是說SecurityManager要驗證用戶省份,那他就需要從域獲取。來確認用戶身份是否合法,也需要realm得到用戶相應的權限/角色進行驗證用戶能否進行操作
    簡繁來說 : 1應用代碼通過Sbuject 來進行認證和授權,而Subject又委託給了
    SecurityManger
    2 我們需要shiro的SecurityManager注入Realm,從而讓SecurityMAnger 能
    得到合法的用戶及權限進行判斷
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章