1. 程式人生 > >開源一套簡單通用的後臺管理系統

開源一套簡單通用的後臺管理系統

  前言

  前段時間我們寫一個簡單的後臺模板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