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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM