Shiro教學
Apache Shiro是一個強大靈活的開源安全框架,可以完全處理身份驗證,授權,企業會話管理和加密。
Apache Shiro的首要目標是易於使用和理解。 安全有時可能非常複雜,甚至痛苦,但使用Shiro後就不一定是這樣了。 框架應該在可能的情況下掩蓋複雜性,並展示一個乾淨,直觀的API,這簡化了開發人員工作,並使應用程序更安全。
這裏有一些可以使用Apache Shiro完全的應用場景:
- 驗證用戶以及驗證其身份。
- 對用戶執行訪問控制,例如:
- 確定用戶是否分配了某個安全角色。
- 確定用戶是否被允許執行操作。
- 在任何環境中使用會話API,即使沒有Web或EJB容器。
- 在身份驗證,訪問控制或會話有效期內對事件做出反應。
- 聚合
1
個或多個用戶安全數據的數據源,並將此全部顯示爲單個複合用戶的「視圖」。 - 啓用單點登錄(SSO)功能。
- 爲用戶關聯啓用「記住我」服務,無需登錄。
… 和更多 - 所有都集成到一個內聚易於使用的API。
Shiro嘗試爲所有應用程序環境實現這些目標 - 從最簡單的命令行應用程序到最大的企業應用程序,而不強制依賴於其他第三方框架,容器或應用程序服務器。 當然,該項目(Shiro)旨在儘可能地集成到這個Shiro環境中,從而可以在任何環境中想用即用。
Apache Shiro特點
Apache Shiro是一個具有許多功能的綜合應用程序安全框架。 下圖顯示了Shiro體系結構,本參考手冊將以類似方式組織:
Shiro目標是什麼?
Shiro開發團隊稱爲「應用程序安全的四個基石」 - 即:認證,授權,會話管理和加密:
1. 認證: 有時被稱爲「登錄」,這是證明用戶的行爲(他們說自己是誰)。
2. 授權:訪問控制的過程,即確定「誰」可以訪問「什麼」。
3. 會話管理:管理用戶特定的會話,即使在非Web或EJB應用程序中。
4. 加密:使用加密算法保持數據安全,同時仍然易於使用。
在不同的應用環境中還有其他特性支持和強化這些問題,特別是:
- Web支持:Shiro的Web支持API有助於保護Web應用程序。
- 緩存:緩存是Apache Shiro API中的第一級,以確保安全操作保持快速和高效。
- 併發性:Apache Shiro支持具有併發功能的多線程應用程序。
- 測試:存在測試支持,可幫助您編寫單元測試和集成測試,並確保代碼按預期得到保障。
- 「運行方式」:允許用戶承擔另一個用戶的身份(如果允許)的功能,有時在管理方案中很有用。
- 「記住我」:記住用戶在會話中的身份,所以用戶只需要強制登錄即可。