springboot-許可權控制shiro(一)
1. 場景描述
(1)許可權控制是IT專案特別是企業專案,繞不開的重要模組,接下來結合springboot介紹下許可權控制框架shiro。
(2)springboot整合shiro的東西有點多,一篇部落格完全介紹清楚有點費勁,擬分成3篇吧,第一篇介紹概念、原理;第二篇介紹搭建程式碼,詳細介紹shiro框架;第三篇結合mybatis,搭建可執行專案。
2. 解決方案
2.1 簡介
目前的許可權控制,很多公司或者企業採用的都是基於角色進行訪問控制的。
百度百科介紹,RBAC(英文縮寫)
2.2 角色控制原理
通過資料庫表結構進行介紹
說明:
基於角色的許可權控制,基本都是基於這五張表來的。
這五張表分別是:
(1)使用者表,儲存使用者資訊。
(2)角色表,儲存角色資訊,這裡的角色類似於我們生活中的角色,企業中角色一般是:財務錄單員、財務稽核人、財務經理、採購員、採購經理等等。
(3)資源表,一般是系統選單或者其他資源。
(4)使用者角色表,多對多關係。
(5)角色資源表,多對多關係。
流程:
(1)使用者登入,校驗使用者名稱與密碼是否正確;
(2)通過使用者名稱獲取使用者對應的角色;
(3)通過角色獲取對應的資源,返回給前端。
2.3 常用框架
基於上面的許可權控制原理,專案組可以通過程式碼來實現許可權控制,也可以通過框架來實現,以前常用的或者好多企業在用的是spring security許可權控制框架,一般會基於spring security做一套統一登入系統(單點登入),由一個系統統一控制企業使用者許可權,其他系統通過介面方式獲取使用者許可權資訊。
以前專案中也一直使用spring security,但是security的過濾鏈還是小多的,配置起來還是稍微有點麻煩,後來聽別人說起shiro,看了下官網,又查了相關資料,shiro也是apache下的子專案,使用者也蠻多的,好評不少,發現比securiy簡潔很多,效果也差不多,後續的專案就改用shiro了。
2.4 shiro介紹
2.4.1 官網
http://shiro.apache.org/
2.4.2 使用方式
通過maven的gav獲取jar使用(目前官網最新版本1.4.1)
<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency>
2.4.3 shiro介紹
shiro主要包含六大模組
(1)認證;(2)授權;(3)密碼;(4)回話管理;(5)web整合;(6)整合模組
說明:
常用的把(1)和(2)用好就可以了,3-6可以暫時不用管。
其中(1)是登入校驗,就是校驗使用者名稱和密碼是否正確用的模組;(2)是許可權控制模組,校驗登入使用者是否有資源許可權。
好了,先到這裡,下節開始全程擼碼與詳細shiro許可權控制框架介紹。
I’m 「軟體老王」,如果覺得還可以的話,關注下唄,後續更新秒知!歡迎討論區、同名公眾號留言交流