一套開源通用后臺管理系統(tǒng),賺錢靠它了!
來源:cnblogs.com/huanzi-qch/p/11534203.html
前言
今天我們把它完善成一個簡單通用的后臺管理系統(tǒng),我把它叫做:Base Admin
這套Base Admin是一套簡單通用的后臺管理系統(tǒng),主要功能有:權限管理、菜單管理、用戶管理,系統(tǒng)設置、實時日志,實時監(jiān)控,API加密,以及登錄用戶修改密碼、配置個性菜單等
技術棧
前端:layui
java后端:SpringBoot + Thymeleaf + WebSocket + Spring Security + SpringData-Jpa + MySql
工程結構說明
java部分、html、js、css部分都是大目錄下面按單表一個子目錄存放


2020-06-10更新
之前調(diào)整過前端文件結構布局,現(xiàn)在重新更新說明一下

運行預覽
效果先睹為快,具體介紹在下方,按功能點進行詳情介紹

功能演示
登錄
(為了方便演示,密碼輸入框的類型改成text)
配置文件分支選擇,dev環(huán)境無需輸入驗證碼


同時支持多種登錄限制
允許/禁止賬號多人在線

軟刪除

限制登錄IP地址

賬號過期

更多登錄限制,還可以繼續(xù)擴展
系統(tǒng)設置
一下簡單的系統(tǒng)屬性設置,想支持更多的配置可自行擴展(比如這里的:用戶管理初始、重置密碼)

系統(tǒng)設置新增部分功能,詳見文末“補充更新”
菜單管理
菜單管理是一棵layui的Tree
增刪改
權限管理
增刪改查

動態(tài)權限加載
權限的加載并不是寫死在代碼,而是動態(tài)從數(shù)據(jù)庫讀取,每次調(diào)用save方法時更新權限集合
1、妲己是ROLE_USER權限,權限內(nèi)容為空,無權訪問/sys/下面的路徑(http://localhost:8888/sys/sysUser/get/1)
2、使用sa超級管理員進行權限管理編輯,給ROLE_USER的權限內(nèi)容添加 /sys/**,妲己立即有權限訪問(http://localhost:8888/sys/sysUser/get/1)

用戶管理
主要包括用戶信息、登錄限制的維護,菜單、權限的分配等
修改用戶權限是下一次登錄生效

修改用戶菜單是刷新系統(tǒng)即可生效

用戶管理新增“當前在線用戶”管理,詳見文末“補充更新”
登錄用戶信息
基本信息
登錄用戶只能修改部分信息,例如名稱、修改密碼

修改密碼
密碼使用的是MD5加密并轉換為16進制字符串存儲,用戶除了能主動修改密碼外,還能叫管理員重置密碼




個性菜單
用戶可以自行配置自己的個性化快捷菜單
實時日志
使用websocket,實時將日志輸出到web頁面,1秒刷新一次
詳情請看我之前的博客:SpringBoot系列——Logback日志,輸出到文件以及實時輸出到web頁面
注意:這里的日志配置只配置了dev環(huán)境,prod環(huán)境尚未為空,發(fā)布生產(chǎn)環(huán)境前記得先配置,否則生成的日志文件將不會輸入日志內(nèi)容!


實時監(jiān)控
2020-06-10更新
實時監(jiān)控的是系統(tǒng)硬件環(huán)境、以及jvm運行時內(nèi)存,使用websocket,實時將數(shù)據(jù)輸出到web頁面,1秒刷新一次
windows環(huán)境

Linux環(huán)境

API加密
詳情請看我之前的博客:前后端API交互數(shù)據(jù)加密——AES與RSA混合加密完整實例
請求參數(shù)加密

響應數(shù)據(jù)加密

2020-06-04更新
1、系統(tǒng)設置新增API加密開關,可一鍵關閉、開啟API加密;
開啟API加密

關閉API加密

關鍵點講解
1、定制url訪問權限,動態(tài)權限讀取,需要自定義配置認證數(shù)據(jù)源、認證管理器、攔截器,詳情步驟請參考:https://www.jianshu.com/p/0a06496e75ea;
2、API加密中,由于登錄校驗是Spring Security做的,因此我們要在UsernamePasswordAuthenticationFilter獲取賬號、密碼之前完成解密操作,正好我們的校驗驗證碼操作就是在它之前,同時要做響應數(shù)據(jù)的加密操作,所以登錄部分的API加密光按照我們之前的博客來還是不夠的,需要在CaptchaFilterConfig進行解密操作,解密后new一個自定義RequestWrapper設置Parameter,并將這個新對象傳到doFilter交由下一步處理
2019-09-18補充:
3、還是API加密問題,我們是在程序啟動的時候生成后端RSA秘鑰對,正常來說我們在訪問登錄頁面進行登錄的時候前端獲取一下就可以了,但在開發(fā)環(huán)境中,我們通常開啟熱部署功能,改完代碼程序可能會自動重啟,但登錄用戶信息仍然保持在本地線程,系統(tǒng)依舊處于登錄狀態(tài)沒有跳轉到登錄頁面,導致后端公鑰已經(jīng)改變,但前端依舊用的是舊的后端公鑰,所有導致加解密失敗;解決:在訪問index首頁時也獲取一下后端公鑰,這樣在開發(fā)的時候idea熱部署后刷新頁面就可以了(已提交最新代碼,解決熱部署后刷新頁面還是API加解密失敗問題;現(xiàn)在熱部署后刷新頁面即可)
2020-07-23補充:
4、好多人都不知道,項目有工具類CodeDOM.java可以生成一套單表的完整增刪改查后臺代碼,具體詳情可以看之前的博客:SpringBoot系列——Spring-Data-JPA(究極進化版) 自動生成單表基礎增、刪、改、查接口
配置好數(shù)據(jù)庫,指定代碼生成父位置

運行main函數(shù)即可一鍵生成一套單表增刪改查后臺代碼


后記
這個只是一個比較簡單通用的后臺系統(tǒng),如果加入工作流,就可以升級成基礎平臺,為簡化業(yè)務開發(fā),將部分通用系統(tǒng)功能整理成獨立項目,具體業(yè)務功能通過iframe嵌入
補充更新
2020-05-14更新
1、新增百度富文本的使用,但還沒配置上傳接口:UEditor文檔
對應字段類型,mysql要改成longtext

2、新增“”記住我“”功能,也就是rememberMe,原理以及源碼探究請看這位大佬的博客:https://blog.csdn.net/qq_37142346/article/details/80114609


需要新增一張表,SQL文件我也以及更新了

3、修復若干bug,使其系統(tǒng)越來越完善
2020-05-16更新
1、系統(tǒng)設置新增系統(tǒng)顏色,頭部、左側菜單的顏色可按心情切換(SQL文件已同步更新)

2020-07-02更新
1、用戶管理模塊新增“當前在線用戶”管理,可實時查看當前在線用戶,以及對當前在線用戶進行強制下線操作

代碼開源
注: 數(shù)據(jù)庫文件在resources/static/sql目錄下面
代碼已經(jīng)開源、托管到我的GitHub、碼云:
GitHub:https://github.com/huanzi-qch/base-admin
碼云:https://gitee.com/huanzi-qch/base-admin
--END--
新功能!公眾號也能插入視頻號
今天給大家介紹芯片是如何制作的?
最近熱文: 給力!微信終于等來了這個新功能了! 真臉紅了!2020年輕人性愛數(shù)據(jù)報告 2020最新Java學習路線圖,附配套視頻! 阿里程序員常用的 15 款開發(fā)者工具,速收藏! 程序員買房前后對比,看完后已哭瞎... 互聯(lián)網(wǎng)相親,是怎么收割單身男女的? IDEA 2020.2 最新破解教程,有效期到2089年! LeetCode1-50題匯總,速度收藏! 2T技術資源大放送!包括但不限于:C/C++,Linux,Python,Java,人工智能,考研,軟考,英語,等等。在公眾號內(nèi)回復「資源」,即可免費獲取! 點個在看少個 bug??
