什麼是Shiro
Apache Shiro是一個強大且靈活的開源安全框架,易於使用且好理解,撇開了搭建安全框架時的複雜性。
Shiro能夠幫助咱們作如下幾件事:web
- 認證使用者的身份
- 提供用戶的訪問控制,好比:
- 決定一個用戶是否被授予某個特定的安全角色
- 決定用戶是否容許作某件事
- 能夠在任何環境中使用Session API,不在侷限於web或是EJB容器中
- 能夠在認證,訪問控制或是session的生命週期的期間中對特定事件產生反應
- 能夠整合多個數據源的用戶安全數據到一個統一的用戶視圖中
- 支持單點登陸
- 支持'記住我'功能
等等
Apache Shiro的特徵
下圖展現了Shiro主要的特徵:
算法
Primary Cocnerns(基本關注點):Authentication(認證),Authorization(受權),Session Management(會話管理),Cryptography(加密)。apache
- Authentication(認證):常常和登陸掛鉤,是證實用戶說他們是誰的一個工做
- Authorization(受權):訪問控制的過程,即,決定‘誰’能夠訪問‘什麼
- Session Management(會話管理):管理用戶特定的會話,即便在非web或是EJB的應用中
- Crytography(加密):經過加密算法保證數據的安全,且易於使用
Supporting Features(輔助特性):緩存
- Web Support(網絡支持):web support API能夠幫助在web應用中方便的使用shiro
- Caching(緩存):保證安全操做使用快速有效
- Concurrency(併發):支持多線程應用
- Testing(測試):支持集成單元測試
- 「Run As」(以..運行):能夠假定用戶爲另外一個用戶
- 「Remeber Me」:記住用戶,無需再次登陸
Authentication和Authenticator的主要流程
- Authentication(認證):
與認證流程相關的Shiro各對象關係以下:

以更加清晰的流程圖對應上述的步驟:
安全
- Authenticator(受權): 與受權相關的Shiro個對象關係以下:

換成流程圖對應上述的步驟:
網絡