(1)權限控制是IT項目特別是企業項目,繞不開的重要模塊,接下來結合springboot介紹下權限控制框架shiro。html
(2)springboot集成shiro的東西有點多,一篇博客徹底介紹清楚有點費勁,擬分紅3篇吧,第一篇介紹概念、原理;第二篇介紹搭建代碼,詳細介紹shiro框架;第三篇結合mybatis,搭建可運行項目。前端
目前的權限控制,不少公司或者企業採用的都是基於角色進行訪問控制的。web
百度百科介紹,RBAC(英文縮寫)spring
經過數據庫表結構進行介紹數據庫
說明:apache
基於角色的權限控制,基本都是基於這五張表來的。springboot
這五張表分別是:mybatis
(1)用戶表,存儲用戶信息。框架
(2)角色表,存儲角色信息,這裏的角色相似於咱們生活中的角色,企業中角色通常是:財務錄單員、財務審覈人、財務經理、採購員、採購經理等等。maven
(3)資源表,通常是系統菜單或者其餘資源。
(4)用戶角色表,多對多關係。
(5)角色資源表,多對多關係。
流程:
(1)用戶登陸,校驗用戶名與密碼是否正確;
(2)經過用戶名獲取用戶對應的角色;
(3)經過角色獲取對應的資源,返回給前端。
基於上面的權限控制原理,項目組能夠經過代碼來實現權限控制,也能夠經過框架來實現,之前經常使用的或者好多企業在用的是spring security權限控制框架,通常會基於spring security作一套統一登陸系統(單點登陸),由一個系通通一控制企業用戶權限,其餘系統經過接口方式獲取用戶權限信息。
之前項目中也一直使用spring security,可是security的過濾鏈仍是小多的,配置起來仍是稍微有點麻煩,後來聽別人提及shiro,看了下官網,又查了相關資料,shiro也是apache下的子項目,使用者也蠻多的,好評很多,發現比securiy簡潔不少,效果也差很少,後續的項目就改用shiro了。
經過maven的gav獲取jar使用(目前官網最新版本1.4.1)
<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency>
shiro主要包含六大模塊
(1)認證;(2)受權;(3)密碼;(4)回話管理;(5)web集成;(6)集成模塊
說明:
經常使用的把(1)和(2)用好就能夠了,3-6能夠暫時不用管。
其中(1)是登陸校驗,就是校驗用戶名和密碼是否正確用的模塊;(2)是權限控制模塊,校驗登陸用戶是否有資源權限。
好了,先到這裏,下節開始全程擼碼與詳細shiro權限控制框架介紹。
I’m 「軟件老王」,若是以爲還能夠的話,關注下唄,後續更新秒知!歡迎討論區、同名公衆號留言交流!
原文出處:https://www.cnblogs.com/ruanjianlaowang/p/11246530.html