學習文章:springboot(十四):springboot整合shiro-登陸認證和權限管理html
Apache Shiro是一個功能強大、靈活的,開源的安全框架。它能夠乾淨利落地處理身份驗證、受權、企業會話管理和加密。web
Apache Shiro的首要目標是易於使用和理解。安全一般很複雜,甚至讓人感到很痛苦,可是Shiro卻不是這樣子的。一個好的安全框架應該屏蔽複雜性,向外暴露簡單、直觀的API,來簡化開發人員實現應用程序安全所花費的時間和精力。算法
Shiro能作什麼呢?spring
等等——都集成到一個有凝聚力的易於使用的API。apache
Shiro 致力在全部應用環境下實現上述功能,小到命令行應用程序,大到企業應用中,並且不須要藉助第三方框架、容器、應用服務器等。固然 Shiro 的目的是儘可能的融入到這樣的應用環境中去,但也能夠在它們以外的任何環境下開箱即用。api
Apache Shiro是一個全面的、蘊含豐富功能的安全框架。下圖爲描述Shiro功能的框架圖:緩存
Authentication(認證), Authorization(受權), Session Management(會話管理), Cryptography(加密)被 Shiro 框架的開發團隊稱之爲應用安全的四大基石。那麼就讓咱們來看看它們吧:安全
還有其餘的功能來支持和增強這些不一樣應用環境下安全領域的關注點。特別是對如下的功能支持:springboot
注意: Shiro不會去維護用戶、維護權限,這些須要咱們本身去設計/提供,而後經過相應的接口注入給Shiro服務器
在概念層,Shiro 架構包含三個主要的理念:Subject,SecurityManager和 Realm。下面的圖展現了這些組件如何相互做用,咱們將在下面依次對其進行描述。
咱們須要實現Realms的Authentication 和 Authorization。其中 Authentication 是用來驗證用戶身份,Authorization 是受權訪問控制,用於對用戶進行的操做受權,證實該用戶是否容許進行當前操做,如訪問某個連接,某個資源文件等。
RBAC 是基於角色的訪問控制(Role-Based Access Control )在 RBAC 中,權限與角色相關聯,用戶經過成爲適當角色的成員而獲得這些角色的權限。這就極大地簡化了權限的管理。這樣管理都是層級相互依賴的,權限賦予給角色,而把角色又賦予用戶,這樣的權限設計很清楚,管理起來很方便。