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 「軟件老王」,如果覺得還可以的話,關注下唄,後續更新秒知!歡迎討論區、同名公衆號留言交流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章