一、Apache Shiro功能簡介

Apache Shiro™ 是一個強大、簡單易用的身份認證、訪問控制、加解密和session管理 的JAVA 安全框架。

無論是移動應用還是web或者企業應用,你都能快速的利用Shiro提供的簡單的易懂的API 來保證你的應用的安全性。

 

一、Authentication Features(身份認證)

身份認證也就是身份校驗,即校驗用戶的身份和行爲。具體操作:用戶需要提供系統能夠識別和信任的身份證明。

Shiro框架的設計理念是讓身份認證無侵入性和簡單易用性,同時儘可能提供豐富的特性。

以下是shiro搶眼的身份認證特性:

1)、Subject Based(基於對象) :在shiro,你能做的任何事都是依賴於當前地操作用戶,此時的用戶成爲一個對象(subject)。

2)、Single Method call(單個方法調用):實現身份認證的值需要調用一個方法。只需要簡單地調用一個方法來保持你代碼乾淨,節省你的時間開支。

3)、Rich Exception Hierarchy(豐富的異常級別):Shiro提供了豐富的異常級別,可以詳細的闡述爲什麼登錄失敗。異常級別可以幫助你簡單地診斷代碼的bug和幫助客戶解決有關身份認證的問題。另外,你可以利用這個功能創建更復雜的身份認證功能。

4)、‘Remember Me’ built in(記住我):Shiro API可以記住你用戶,你可以利用這個功能提供更好的用戶體驗。

5)、Pluggable data sources(可拔插的數據源):Shiro 使用可拔插的數據訪問對象(DAOs),也稱爲Realms。

Shiro爲常用的數據源提供了開箱即用的realms,例如LDAP,Active Directory,jdbc。你也可以自定義realms。

6)、Login with one or more realms(依賴一個或者多個Realm登錄):使用shiro我們可以簡單地使用一個或者多個realm來認證用戶,並且返回統一的視圖給用戶。

 

二、Authorization(access control,訪問控制

訪問控制對於任何應用來說都是至關重要的。shiro的目標就是讓你能夠簡單地實現訪問控制。訪問控制也就是控制用戶能做什麼,不能做什麼。

1)、Subject-based(基於主題):shiro基本都是依賴於當期正在使用的用戶(subject)。你的代碼可以通過訪問subject,從而取得Subject對象,並且可以驗證它的角色,權限或者其他一些屬性。

2)、Checks based on roles or permissions(校驗是基於角色或者許可證):shiro的設計是很靈活的,既可以基於角色來校驗,也可以使用許可證(類似token)來校驗。

3)、Multiple enforcement options(多種實施選擇):訪問控制可以通過多種方式實現,如:JDK1.5以上提供的註解、AOP、JSP/GSP 標籤等。shiro的目標就是提供多種選擇,可以讓你根據需要選擇合適的方式。

4)、Strong caching support(強大的緩存支持):shiro幾乎支持了所有開源的、企業的緩存產品。

5)、Powerful and intuitive permission syntax(強大、簡便的權限語法):shiro提供了一種開箱即用的權限語法,叫做Wildcard Permissions。

5)、Pluggable data sources(可拔插數據源)

6)、Supports any data model(支持任意的數據模型)

 

三、Cryptography(加密)

加密是通過隱藏或者轉換數據成看不懂的字符,從而保護不希望被訪問的信息的行爲。

Cipher FeaturesAbstractSymmetricCipherServiceDefaultBlockCipherServiceAesCipherService

Hash Features:MD5, SHA1, SHA-256等

 

四、Session Management(session管理):

session是用戶在使用你的應用期間,攜帶用戶信息的數據。

1)、POJO/J2SE based (IoC friendly):shiro都是通過接口變成或者實現接口。這樣很簡單的配置session組件。你也可以override shiro的組件,從而自定義session管理。

2)、Session Storage(sesion存儲):因爲shiro的session對象是基於POJO,所以session數據可以很簡單地存儲到任何數據源。

3)、Easy and Powerful Clustering(簡單、強大的集羣):shiro 的session 可以很簡單地通過網絡緩存產品(如ehcache)集羣。

4)、Heterogeneous Client Access (允許各種各樣的客戶端訪問)

5)、Event listeners(事件監聽)

6)、Host address retention(保留主機地址)

7)、Inactivity/expiration support (不活動、過期支持):由於不活動(session不更新)而導致session過期。

8)、ransparent web use

9)、Can be used for SSO(容易用於SSO)

 

五、Web Integration(與web結合使用):

儘管shiro設計師基於JVM的安全框架,但是它通常用於web 應用。他通過簡單的URL匹配和chain的定義來實現安全性。

 

六、Integrations

另外,shiro可以與其他技術跟框架整合。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章