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

1、什麼是Shiro數據庫

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

  • 認證 - 用戶身份識別,常被稱爲用戶「登陸」;緩存

  • 受權 - 訪問控制;安全

  • 密碼加密 - 保護或隱藏數據防止被偷窺;架構

  • 會話管理 - 每用戶相關的時間敏感的狀態。框架

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

2、Shiro的架構介紹 spa

Subject:即「當前操做用戶」。可是,在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完整架構圖: 

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

Authenticator :認證就是覈實用戶身份的過程。這個過程的常見例子是你們都熟悉的「用戶/密碼」組合。多數用戶在登陸軟件系統時,一般提供本身的用戶名(當事人)和支持他們的密碼(證書)。若是存儲在系統中的密碼(或密碼錶示)與用戶提供的匹配,他們就被認爲經過認證。 

Authorizer :受權實質上就是訪問控制 - 控制用戶可以訪問應用中的哪些內容,好比資源、Web頁面等等。 

SessionManager :在安全框架領域,Apache Shiro提供了一些獨特的東西:可在任何應用或架構層一致地使用Session API。即,Shiro爲任何應用提供了一個會話編程範式 - 從小型後臺獨立應用到大型集羣Web應用。這意味着,那些但願使用會話的應用開發者,沒必要被迫使用Servlet或EJB容器了。或者,若是正在使用這些容器,開發者如今也能夠選擇使用在任何層統一一致的會話API,取代Servlet或EJB機制。 
CacheManager :對Shiro的其餘組件提供緩存支持。 

相關文章
相關標籤/搜索