Apache Shiro 簡介,apacheshiro簡介
作者:var dump
鏈接:https://zhuanlan.zhihu.com/p/23300328
最近要做一個基於Java C/S架構的項目,主要涉及權限管理這方面的東西。了解到Apache Shiro適合做這個。其官網上教程寫的很好,打算把這些教程翻譯成英文,這是第一篇。
Apache shiro是什麼?
Apache Shiro是一款強大、靈活的開源安全管理框架,以十分優雅的方式處理authentication(身份驗證)、authorization(授權)、enterprise session(企業會話?)和cryptography()加密。
譯者:一些在Shiro中的專用名詞將不會譯為中文,但譯者會根據自己的理解在括號中給出中文釋義。
Apache Shiro的首要目標就是易於上手和容易理解。在軟件中,安全管理有時會非常復雜、痛苦,但Apache Shiro會讓它變得非常簡單。下面是Apache Shiro可以做的事:
- 鑒別用戶身份
- 管理用戶權限,例如:判斷用戶是否有某一角色或用戶是否被允許做某一操作
- 即使沒有web或EJB容器,也可以使用session API
- 在鑒別用戶身份時、權限管理時或session生命周期內進行一些操作
- 可以聚合一個或多個用戶權限數據源並且以用戶視圖的形式統一表現出來
- 實現了單點登錄功能(SSO)
- 無需登錄便可實現“記住我”這一功能
...
那麼Shiro可以用在哪些類型的應用中呢?小到命令行程序,大到企業級應用,Shiro幾乎可以用在任何場景中。
Apache Shiro的特色
Apache Shiro是一款應用廣泛的安全管理框架,有很多特色。下圖展示了Shiro的整體架構,本系列教程也會以此為根據組織順序。
Shiro的目標是做好Authentication(身份鑒別)、Authorization(權限管理)、Session Management(會話管理)、Cryptography(加密)四個方面(這是軟件安全的四大基石)。
- Authentication(身份鑒別):有時指登錄,鑒別用戶的身份
- Authorization(權限管理):決定用戶是否有權訪問某物
- Session Management(會話管理):即使不是web應用也不是EJB應用,仍然可以管理具有明確用戶的session(會話)
- Cryptography(加密):利用加密算法保證數據安全
為了支持更多的應用場景,Shrio還具有其他特色:
- 支持web應用
- 緩存:保證了安全管理的速度和效率
- 並發:支持多線程應用
- 測試:可以通過單元測試和集成測試驗證程序的安全性
- “Run As”:允許用戶將某一身份賦予另一用戶(在一些行政管理軟件中常用)
- “Remember Me”:在Session(會話)期間記住用戶身份,當只有強制要求登錄是才需要用戶登錄