開源一套簡單通用的後臺管理系統
前言
前段時間我們寫一個簡單的後臺模板SpringBoot系列——Security + Layui實現一套許可權管理後臺模板,今天我們把它完善成一個簡單通用的後臺管理系統,我把它叫做:Base Admin
這套Base Admin是一套簡單通用的後臺管理系統,主要功能有:許可權管理、選單管理、使用者管理,系統設定、實時日誌,API加密,以及登入使用者修改密碼、配置個性選單等
技術棧
前端:layui
java後端:SpringBoot + Thymeleaf + WebSocket + Spring Security + SpringData-Jpa + MySql
工程結構說明
java部分、html、js、css部分都是大目錄下面按單表一個子目錄存放
功能演示
登入
(為了方便演示,密碼輸入框的型別改成text)
配置檔案分支選擇,dev環境無需輸入驗證碼
同時支援多種登入限制
允許/禁止賬號多人線上
軟刪除
限制登入IP地址
賬號過期
更多登入限制,還可以繼續擴充套件
系統設定
一下簡單的系統屬性設定,想支援更多的配置可自行擴充套件(比如這裡的:使用者管理初始、重置密碼)
選單管理
選單管理是一棵layui的Tree
增刪改
許可權管理
增刪改查
動態許可權載入
許可權的載入並不是寫死在程式碼,而是動態從資料庫讀取,每次呼叫save方法時更新許可權集合
1、妲己是ROLE_USER許可權,許可權內容為空,無權訪問/sys/下面的路徑(http://localhost:8888/sys/sysUser/get/1)
2、使用sa超級管理員進行許可權管理編輯,給ROLE_USER的許可權內容新增 /sys/**,妲己立即有許可權訪問(http://localhost:8888/sys/sysUser/get/1)
使用者管理
主要包括使用者資訊、登入限制的維護,選單、許可權的分配等
修改使用者許可權是下一次登入生效
修改使用者選單是刷新系統即可生效
登入使用者資訊
基本資訊
登入使用者只能修改部分資訊,例如名稱、修改密碼
修改密碼
密碼使用的是MD5加密並轉換為16進位制字串儲存,使用者除了能主動修改密碼外,還能叫管理員重置密碼
個性選單
使用者可以自行配置自己的個性化快捷選單
實時日誌
詳情請看我之前的部落格:SpringBoot系列——Logback日誌,輸出到檔案以及實時輸出到web頁面
API加密
詳情請看我之前的部落格:前後端API互動資料加密——AES與RSA混合加密完整例項
請求引數加密
響應資料加密
關鍵點講解
1、定製url訪問許可權,動態許可權讀取,需要自定義配置認證資料來源、認證管理器、攔截器,詳情步驟請參考:https://www.jianshu.com/p/0a06496e75ea;
2、API加密中,由於登入校驗是Spring Security做的,因此我們要在UsernamePasswordAuthenticationFilter獲取賬號、密碼之前完成解密操作,正好我們的校驗驗證碼操作就是在它之前,同時要做響應資料的加密操作,所以登入部分的API加密光按照我們之前的部落格來還是不夠的,需要在CaptchaFilterConfig進行解密操作,解密後new一個自定義RequestWrapper設定Parameter,並將這個新物件傳到doFilter交由下一步處理
後記
這個只是一個比較簡單通用的後臺系統,如果加入工作流,就可以升級成基礎平臺,為簡化業務開發,將部分通用系統功能整理成獨立專案,具體業務功能通過iframe嵌入
程式碼開源
注:資料庫檔案在resources/static/sql目錄下面
程式碼已經開源、託管到我的GitHub、碼雲:
GitHub:https://github.com/huanzi-qch/base-admin
碼雲:https://gitee.com/huanzi-qch/base-admin