首頁 後端開發 php教程 Apache Shiro 使用手冊(一)Shiro架構介紹

Apache Shiro 使用手冊(一)Shiro架構介紹

Jan 18, 2017 am 09:14 AM
apache shiro

Apache Shiro 使用手冊(一)Shiro架構介紹

一、什麼是Shiro 

Apache Shiro是一個強大易用的Java安全框架,提供了認證、授權、加密和會話管理等功能: 

認證- 用戶身分識別,常被稱為使用者「登入」;
授權- 存取控制;
密碼加密- 保護或隱藏資料防止被偷窺;
會話管理- 每位使用者相關的時間敏感的狀態。

對於任何一個應用程序,Shiro都可以提供全面的安全管理服務。並且相對於其他安全框架,Shiro要簡單的多。

二、Shiro的架構介紹 

首先,來了解Shiro的三個核心元件:Subject, SecurityManager 與 Realms. 如下圖: 

Apache Shiro 使用手冊(一)Shiro架構介紹


但是,在Shiro中,Subject這一概念並不僅僅指人,也可以是第三方進程、後台帳戶(Daemon Account)或其他類似事物。它僅僅意味著「當前跟軟體互動的東西」。但考慮到大多數目的和用途,你可以把它認為是Shiro的「使用者」概念。 

Subject代表了目前使用者的安全操作,SecurityManager管理所有使用者的安全操作。 

SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro透過SecurityManager來管理內部元件實例,並透過它來提供安全管理的各種服務。 

Realm: Realm充當了Shiro與應用安全資料間的「橋樑」或「連接器」。也就是說,當使用者執行認證(登入)和授權(存取控制)驗證時,Shiro會從應用程式配置的Realm中尋找使用者及其權限資訊。 

從這個意義上講,Realm實質上是一個安全相關的DAO:它封裝了資料來源的連接細節,並在需要時將相關資料提供給Shiro。當配置Shiro時,你必須至少指定一個Realm,用於認證和(或)授權。配置多個Realm是可以的,但是至少需要一個。 

Shiro內建了可連接大量安全資料來源(又稱目錄)的Realm,如LDAP、關聯式資料庫(JDBC)、類似INI的文字設定資源以及屬性檔案等。如果預設的Realm無法滿足需求,你也可以插入代表自訂資料來源的自己的Realm實作。 

Shiro完整架構圖: 

Apache Shiro 使用手冊(一)Shiro架構介紹

除前文所講Subject、SecurityManager 、Realm三個核心元件外,Shiro主要元件還包括: 

Authenticatorator 身份的過程。這個過程的常見例子是大家都熟悉的「使用者/密碼」組合。多數使用者在登入軟體系統時,通常提供自己的使用者名稱(當事人)和支援他們的密碼(憑證)。如果儲存在系統中的密碼(或密碼表示)與使用者提供的匹配,他們就被認為通過認證。 

Authorizer :授權實質上就是存取控制 - 控制使用者能夠存取應用程式中的哪些內容,例如資源、Web頁面等等。 

SessionManager :在安全性框架領域,Apache Shiro提供了一些獨特的東西:可在任何應用程式或架構層一致地使用Session API。即,Shiro為任何應用提供了會話程式設計範式 - 從小型後台獨立應用到大型叢集Web應用。這意味著,那些希望使用會話的應用程式開發者,不必被迫使用Servlet或EJB容器了。或者,如果正在使用這些容器,開發者現在也可以選擇使用在任何層統一一致的會話API,取代Servlet或EJB機制。 

CacheManager :對Shiro的其他元件提供快取支援。


 以上就是Apache Shiro 使用手冊(一)Shiro架構介紹的內容,更多相關內容請關注PHP中文網(www.php.cn)!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

apache中cgi目錄怎麼設置 apache中cgi目錄怎麼設置 Apr 13, 2025 pm 01:18 PM

要在 Apache 中設置 CGI 目錄,需要執行以下步驟:創建 CGI 目錄,如 "cgi-bin",並授予 Apache 寫入權限。在 Apache 配置文件中添加 "ScriptAlias" 指令塊,將 CGI 目錄映射到 "/cgi-bin" URL。重啟 Apache。

apache80端口被佔用怎麼辦 apache80端口被佔用怎麼辦 Apr 13, 2025 pm 01:24 PM

當 Apache 80 端口被佔用時,解決方法如下:找出佔用該端口的進程並關閉它。檢查防火牆設置以確保 Apache 未被阻止。如果以上方法無效,請重新配置 Apache 使用不同的端口。重啟 Apache 服務。

apache怎麼連接數據庫 apache怎麼連接數據庫 Apr 13, 2025 pm 01:03 PM

Apache 連接數據庫需要以下步驟:安裝數據庫驅動程序。配置 web.xml 文件以創建連接池。創建 JDBC 數據源,指定連接設置。從 Java 代碼中使用 JDBC API 訪問數據庫,包括獲取連接、創建語句、綁定參數、執行查詢或更新以及處理結果。

怎麼查看自己的apache版本 怎麼查看自己的apache版本 Apr 13, 2025 pm 01:15 PM

有 3 種方法可在 Apache 服務器上查看版本:通過命令行(apachectl -v 或 apache2ctl -v)、檢查服務器狀態頁(http://<服務器IP或域名>/server-status)或查看 Apache 配置文件(ServerVersion: Apache/<版本號>)。

怎麼查看apache版本 怎麼查看apache版本 Apr 13, 2025 pm 01:00 PM

如何查看 Apache 版本?啟動 Apache 服務器:使用 sudo service apache2 start 啟動服務器。查看版本號:使用以下方法之一查看版本:命令行:運行 apache2 -v 命令。服務器狀態頁面:在 Web 瀏覽器中訪問 Apache 服務器的默認端口(通常為 80),版本信息顯示在頁面底部。

apache怎麼刪除多於的服務器名 apache怎麼刪除多於的服務器名 Apr 13, 2025 pm 01:09 PM

要從 Apache 中刪除多餘的 ServerName 指令,可以採取以下步驟:識別並刪除多餘的 ServerName 指令。重新啟動 Apache 使更改生效。檢查配置文件驗證更改。測試服務器確保問題已解決。

apache不能啟動怎麼解決 apache不能啟動怎麼解決 Apr 13, 2025 pm 01:21 PM

Apache 無法啟動,原因可能有以下幾點:配置文件語法錯誤。與其他應用程序端口衝突。權限問題。內存不足。進程死鎖。守護進程故障。 SELinux 權限問題。防火牆問題。軟件衝突。

apache怎麼啟動 apache怎麼啟動 Apr 13, 2025 pm 01:06 PM

啟動 Apache 的步驟如下:安裝 Apache(命令:sudo apt-get install apache2 或從官網下載)啟動 Apache(Linux:sudo systemctl start apache2;Windows:右鍵“Apache2.4”服務並選擇“啟動”)檢查是否已啟動(Linux:sudo systemctl status apache2;Windows:查看服務管理器中“Apache2.4”服務的狀態)啟用開機自動啟動(可選,Linux:sudo systemctl

See all articles