牛逼!力挺一套實用的後臺管理系統(附源碼),擺脫重複製造輪子...

2021-02-13 Java面試那些事兒

# 前言


前段時間我們寫一個簡單的後臺模板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進位字符串存儲,用戶除了能主動修改密碼外,還能叫管理員重置密碼

 

個性菜單

 

用戶可以自行配置自己的個性化快捷菜單

實時日誌

使用websocket,實時將日誌輸出到web頁面,1秒刷新一次

注意:這裡的日誌配置只配置了dev環境,prod環境尚未為空,發布生產環境前記得先配置,否則生成的日誌文件將不會輸入日誌內容!

實時監控

實時監控的是系統硬體環境、以及jvm運行時內存,使用websocket,實時將數據輸出到web頁面,1秒刷新一次

windows環境

Linux環境

API加密

請求參數加密

響應數據加密

1、系統設置新增API加密開關,可一鍵關閉、開啟API加密;

開啟API加密

關閉API加密

# 關鍵點講解

1、定製url訪問權限,動態權限讀取,需要自定義配置認證數據源、認證管理器、攔截器。

2、API加密中,由於登錄校驗是Spring Security做的,因此我們要在UsernamePasswordAuthenticationFilter獲取帳號、密碼之前完成解密操作,正好我們的校驗驗證碼操作就是在它之前,同時要做響應數據的加密操作,所以登錄部分的API加密光按照我們之前的博客來還是不夠的,需要在CaptchaFilterConfig進行解密操作,解密後new一個自定義RequestWrapper設置Parameter,並將這個新對象傳到doFilter交由下一步處理

3、還是API加密問題,我們是在程序啟動的時候生成後端RSA秘鑰對,正常來說我們在訪問登錄頁面進行登錄的時候前端獲取一下就可以了,但在開發環境中,我們通常開啟熱部署功能,改完代碼程序可能會自動重啟,但登錄用戶信息仍然保持在本地線程,系統依舊處於登錄狀態沒有跳轉到登錄頁面,導致後端公鑰已經改變,但前端依舊用的是舊的後端公鑰,所有導致加解密失敗;解決:在訪問index首頁時也獲取一下後端公鑰,這樣在開發的時候idea熱部署後刷新頁面就可以了(已提交最新代碼,解決熱部署後刷新頁面還是API加解密失敗問題;現在熱部署後刷新頁面即可)

4、好多人都不知道,項目有工具類CodeDOM.java可以生成一套單表的完整增刪改查後臺代碼,具體詳情可以看之前的博客:SpringBoot系列——Spring-Data-JPA(究極進化版) 自動生成單表基礎增、刪、改、查接口

配置好資料庫,指定代碼生成父位置

運行main函數即可一鍵生成一套單表增刪改查後臺代碼

# 後記

這個只是一個比較簡單通用的後臺系統,如果加入工作流,就可以升級成基礎平臺,為簡化業務開發,將部分通用系統功能整理成獨立項目,具體業務功能通過iframe嵌入

1、新增百度富文本的使用,但還沒配置上傳接口:UEditor文檔

對應欄位類型,mysql要改成longtext

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

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

3、修復若干bug,使其系統越來越完善

1)系統設置新增系統顏色,頭部、左側菜單的顏色可按心情切換(SQL文件已同步更新)

2)用戶管理模塊新增「當前在線用戶」管理,可實時查看當前在線用戶,以及對當前在線用戶進行強制下線操作

源碼地址:

https://github.com/huanzi-qch/base-admin

作者:huanzi-qch

出處:https://www.cnblogs.com/huanzi-qch/


相關焦點

  • 一套開源通用後臺管理系統,賺錢靠它了!
    前言今天我們把它完善成一個簡單通用的後臺管理系統,我把它叫做:Base Admin這套Base Admin是一套簡單通用的後臺管理系統,主要功能有:權限管理、菜單管理、用戶管理,系統設置、實時日誌,實時監控,API加密,以及登錄用戶修改密碼、配置個性菜單等技術棧
  • 開源推薦,一個完整後臺管理系統,熟悉就能掙錢(附源碼)!
    今天,推薦一個後臺管理系統。第一次使用就有點上頭,熟悉後接私活很實用,愛不釋手,必須要推薦給大家。這是我目前見過最好的後臺管理系統。
  • 這個開源後臺管理系統,用過的都說好!
    開源最前線(ID:OpenSourceTop) 猿妹整編整合自:https://www.cnblogs.com/huanzi-qch/p/11534203.html、https://github.com/huanzi-qch/base-admin話不多說,今天就和大家分享一個牛逼的開源後臺管理系統
  • 一套完整的 後臺管理系統,賺錢就靠它了!
    前言 這套Base Admin是一套簡單通用的後臺管理系統,主要功能有:權限管理、菜單管理、用戶管理,系統設置、實時日誌,實時監控,API加密,以及登錄用戶修改密碼、配置個性菜單等技術棧 前端:layuijava後端:SpringBoot + Thymeleaf + WebSocket
  • Django Admin後臺管理系統
    後臺管理系統的重要性我們先考慮一下,Django 為什麼要引入後臺管理系統呢?我們知道,Web 站點上某些內容的改動是後臺管理員來完成的,如果管理員直接用 Shell 或者 SQL 語句來修改,不僅麻煩,而且容易操作失誤,從而導致數據不一致的結果。假如是一個不懂編程的人呢?應該怎麼去操作呢?
  • 一套簡單通用的Java後臺管理系統,拿來即用,非常方便(附項目地址)
    前言前段時間我們寫一個簡單的後臺模板SpringBoot系列——Security + Layui實現一套權限管理後臺模板,今天我們把它完善成一個簡單通用的後臺管理系統
  • 看看人家那後臺管理系統,那叫一個優雅(附源碼)!
    今天,推薦一個後臺管理系統項目。頂級架構師第一次使用就有點上頭,愛不釋手,必須要推薦給大家。上次是誰要的後臺管理系統項目啊,頂級架構師幫你找到了。這是我目前見過的後臺管理系統項目。功能完整,代碼結構清晰。值得推薦。
  • 一套完整牛 X 的後臺管理系統(已開源),接外包的同學靠它賺了不少 Money~
    前言前段時間我們寫一個簡單的後臺模板SpringBoot系列——Security + Layui實現一套權限管理後臺模板,今天我們把它完善成一個簡單通用的後臺管理系統,我把它叫做:Base Admin這套Base Admin是一套簡單通用的後臺管理系統,主要功能有
  • 一套簡單通用的 Java 後臺管理系統,拿來即用,非常方便(附項目地址)
    前言這套Base Admin是一套簡單通用的後臺管理系統,主要功能有:權限管理、菜單管理、用戶管理,系統設置、實時日誌,實時監控,API加密,以及登錄用戶修改密碼、配置個性菜單等技術棧前端:layuijava後端:SpringBoot + Thymeleaf + WebSocket
  • 非常有價值的電商系統,包括前臺商城和後臺管理系統!
    mall項目是一套電商系統,包括前臺商城系統及後臺管理系統,基於SpringBoot+MyBatis實現,採用Docker容器化部署。前臺商城系統包含首頁門戶、商品推薦、商品搜索、商品展示、購物車、訂單流程、會員中心、客戶服務、幫助中心等模塊。後臺管理系統包含商品管理、訂單管理、會員管理、促銷管理、運營管理、內容管理、統計報表、財務管理、權限管理、設置等模塊。
  • 3 分鐘生成後臺管理系統,絕了!
    推薦一個免費開源的後臺管理系統編程導航 致力於推薦優質編程資源 💎項目開源倉庫:
  • 使用Axure設計中,大型的後臺系統原型總結
    本人結合自己實際的多個後臺系統項目經歷以及使用Axure的經驗技巧,從方便維護和便於復用等角度出發,總結出了這篇關於後臺系統原型設計的分享內容,希望能幫助到一些有需要的朋友們。1. 確定框架結構和布局方案在正式開始設計一套後臺系統原型之前,我們需要先確定它的框架結構。
  • 10k+點讚的 SpringBoot 後臺管理系統,竟然出了詳細教程!
    其實項目網上有很多了,但是教程比較詳細的沒多少,今天分享的項目從安裝部署到代碼具體功能都有很詳細都說明eladmin 是一款基於 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue 的前後端分離的後臺管理系統
  • Spring MVC+Spring+MyBatis整合後臺管理系統
    項目描述後臺管理系統(CMS) ,包括管理員管理模塊、會員管理模塊、系統管理模塊等。
  • 【to B管理端】後臺管理系統的消息反饋如何設計
    最近在整理反饋類組件的設計規範,這裡對後臺管理系統的反饋體系做一個總結。
  • 開發一個大型後臺管理系統,真的需要用前後端分離的技術方案嗎?
    為了大家好理解,把「xxx 後臺管理系統」泛化一下,變成:開發一個大型後臺管理系統,應該用前後端分離的技術方案嗎?先說一下,本文中的觀點肯定有人不認同,再加上我對前端技術掌握有限,所以大家批判的看吧。1.
  • 輪子媽遇到這樣出裝的寒冰只得跑路!小兵都幫不了她
    輔助方面的選擇,還是很講究的,小編最推薦錘石,這個英雄保護那些無位移技能的ADC非常實用,如果你手殘預判能力不強的話,那來個蛤蟆也是不錯。除了上邊錘石和蛤蟆兩個寒冰最喜歡的輔助外,風女(全方面的保護,最克制劫,亞索等刺客英雄切寒冰)、布隆(前期對拼沒的說,但輔助必須關心寒冰的Q技能的層數,滿四層了布隆先手絕對不會吃虧)、拉克絲(只要拉克絲Q命中了,寒冰接上大招,拉克絲一套下去對面一般都黑了
  • 15 個炫酷的的 Vue 後臺管理模板
    模板是我們做後臺管理系統經常所需要的東西。雖然,我們總可以花很多時間從頭開始設計自己的模板,但有現在的模板讓我們套,節省我們更多時間用來摸魚,何樂而不為呢。這些現有出色模板,除了節省時間外,還附帶這些好處:1.
  • 「分布式KVM坐席管理系統」是什麼梗?
    嗯,聽上去很牛逼的感覺!那麼,到底「分布式KVM坐席管理系統」是個什麼梗?今天我們就來一起了解下。分布式KVM坐席管理系統是一個硬體或軟體組件分布在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統。採用全IP架構,以分布式技術為核心,通過設置KVM坐席輸入節點、KVM坐席輸出節點、網絡交換機、用戶主機、顯示器、一套滑鼠和鍵盤配合,坐席人員可以任意調用不同作業系統、不同解析度、不同接口的數據,完全無需擔心切換問題。
  • 實用!質量管理工具南丁格爾玫瑰圖,護士長掌握了麼?
    溫馨提示:用F4鍵可進行重複操作,比如點擊某個圓環,點擊形狀填充,選為無填充,再點擊另一個圓環,按一下F4鍵,此圓環的填充顏色就會變為無填充。點擊F4重複之前的步驟也適用於word,ppt哦!( 吳志軍    楊磊)精彩內容推薦:實用!質量管理工具柏拉圖,護士長掌握了嗎?實用!質量管理工具控制圖,護士長掌握了嗎?實用!質量管理工具散點圖,護士長掌握了嗎?實用!質量管理工具魚骨圖,護士長掌握了嗎?