Apache Shiro 介紹
什么是Apache Shiro?
Apache shiro 是一個強大而靈活的開源安全框架,可清晰地處理身份認證、授權、會話(session)和加密。
Apache Shiro最主要的初衷是為了易用和易理解,處理安全問題可能非常復雜甚至非常痛苦,但并非一定要如此。一個框架應該盡可能地將復雜的問題隱藏起來,提供清晰直觀的API使開發者可以很輕松地開發自己的程序安全代碼。
利用Apache Shiro你可以做這些事情:
驗證用戶身份;
對用戶執行訪問控制,如:
確定用戶是否為指定的角色,
確定用戶是否有權限做某件事情;
在任何環境下使用會話(session)API,甚至在沒有web或者EJB容器的環境下;
影響在身份認證、訪問控制或整個會話周期中的事件;
綜合一種或多種用戶安全數據的數據源并將這些數據源表現成一個單獨的綜合的用戶'視圖(view)';
允許單點登錄(SSO)功能設計;
(譯者注:SSO英文全稱Single Sign On,單點登錄。SSO是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。它包括可以將這次主要的登錄映射到其他應用中用于同一個用戶的登錄的機制。它是目前比較流行的企業業務整合的解決方案之一。)
允許用戶使用'記住我(Remember Me)'服務而無須登錄。
……
還有更多--所有都整合在了綜合合的易用的API中。
Shiro嘗試在所有應用環境中實現這些目標--從簡單的命令行程序到大型企業級項目,無須依賴第三方的框架、容器或服務,當然,項目的目標仍然是在這些環境中盡可能地整合,但它在任何環境下都可以拿來使用。
Apache Shiro 特征
Apache Shiro 是一個擁有很多特點的用途廣泛的程序安全框架,下面的圖表展示了Shiro的主要功能特點,本文(reference manual)也是按類似的方式組織的。
Shiro將目標集中于Shiro開發團隊所稱的“四大安全基石”-認證(Authentication)、授權(Authorization)、會話管理(Session Management)和加密(Cryptography):
認證(Authentication):有時可看作為“登錄(login)”,它是用戶證明自己是誰的一個行為。
授權(Authorization):訪問控制過程,好比決定“認證(who)”可以訪問“什么(what)”.
會話管理(Session Management):管理用戶指定的會話(sessions),甚至在非WEB或EJB程序中。
加密(Cryptography):使用加密算法保護數據更加安全,應用仍然非常簡單。
還有一些附加的功能以在不同的程序環境中進行支持和加強,特別是:
Web支持:利用Shiro的web支持API可以很容易地實現web程序安全;
Caching:Caching在Apache Shiro的API中是一等公民,確保安全認證的動作快速而有效。
并發(Concurrency):Apache Shiro支持多線程;
測試(Testing):支持測試,幫助你開發單元和綜合測試程序確保你的代碼如你所預期的那樣進行安全認證。
“Run As”:允許用戶使用其他用戶身份(如果被允許),這在執行某些管理角本中非常有用。
“Remember Me”:在整個會話周期中(sessions)記住用戶的身份,用戶只需要在程序強制要求登錄的情況下才需要登錄。