<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一套開(kāi)源免費(fèi)的 SpringBoot +Layui通用后臺(tái)管理系統(tǒng) !

          共 2646字,需瀏覽 6分鐘

           ·

          2020-10-21 11:12


          前言

          這套Base Admin是一套簡(jiǎn)單通用的后臺(tái)管理系統(tǒng),主要功能有:權(quán)限管理、菜單管理、用戶管理,系統(tǒng)設(shè)置、實(shí)時(shí)日志,實(shí)時(shí)監(jiān)控,API加密,以及登錄用戶修改密碼、配置個(gè)性菜單等。

          技術(shù)棧

          前端:layui
          java后端:SpringBoot + Thymeleaf + WebSocket + Spring Security + SpringData-Jpa + MySql

          工程結(jié)構(gòu)說(shuō)明

          java部分、html、js、css部分都是大目錄下面按單表一個(gè)子目錄存放

          運(yùn)行預(yù)覽

          效果先睹為快,具體介紹在下方,按功能點(diǎn)進(jìn)行詳情介紹

          功能演示

          登錄

          (為了方便演示,密碼輸入框的類型改成text)配置文件分支選擇,dev環(huán)境無(wú)需輸入驗(yàn)證碼。
          同時(shí)支持多種登錄限制。

          允許/禁止賬號(hào)多人在線。

          軟刪除

          限制登錄IP地址

          賬號(hào)過(guò)期

          更多登錄限制,還可以繼續(xù)擴(kuò)展。
          系統(tǒng)設(shè)置
          一下簡(jiǎn)單的系統(tǒng)屬性設(shè)置,想支持更多的配置可自行擴(kuò)展(比如這里的:用戶管理初始、重置密碼)。
          系統(tǒng)設(shè)置新增部分功能,詳見(jiàn)文末“補(bǔ)充更新”

          菜單管理

          菜單管理是一棵layui的Tree
          權(quán)限管理
          增刪改查

          動(dòng)態(tài)權(quán)限加載

          權(quán)限的加載并不是寫(xiě)死在代碼,而是動(dòng)態(tài)從數(shù)據(jù)庫(kù)讀取,每次調(diào)用save方法時(shí)更新權(quán)限集合。
          1、妲己是ROLE_USER權(quán)限,權(quán)限內(nèi)容為空,無(wú)權(quán)訪問(wèn)/sys/下面的路徑(http://localhost:8888/sys/sysUser/get/1)
          2、使用sa超級(jí)管理員進(jìn)行權(quán)限管理編輯,給ROLE_USER的權(quán)限內(nèi)容添加 /sys/**,妲己立即有權(quán)限訪問(wèn)(http://localhost:8888/sys/sysUser/get/1)
          用戶管理
          主要包括用戶信息、登錄限制的維護(hù),菜單、權(quán)限的分配等。
          修改用戶權(quán)限是下一次登錄生效。
          修改用戶菜單是刷新系統(tǒng)即可生效。
          用戶管理新增“當(dāng)前在線用戶”管理,詳見(jiàn)文末“補(bǔ)充更新”
          登錄用戶信息
          基本信息
          登錄用戶只能修改部分信息,例如名稱、修改密碼
          修改密碼
          密碼使用的是MD5加密并轉(zhuǎn)換為16進(jìn)制字符串存儲(chǔ),用戶除了能主動(dòng)修改密碼外,還能叫管理員重置密碼。

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

          實(shí)時(shí)監(jiān)控

          實(shí)時(shí)監(jiān)控的是系統(tǒng)硬件環(huán)境、以及jvm運(yùn)行時(shí)內(nèi)存,注:因本人暫無(wú)Linux環(huán)境,所以只測(cè)試了windows環(huán)境,有問(wèn)題請(qǐng)及時(shí)反饋,謝謝!
          使用websocket,實(shí)時(shí)將數(shù)據(jù)輸出到web頁(yè)面,1秒刷新一次。
          API加密
          請(qǐng)求參數(shù)加密
          響應(yīng)數(shù)據(jù)加密
          1、系統(tǒng)設(shè)置新增API加密開(kāi)關(guān),可一鍵關(guān)閉、開(kāi)啟API加密;
          開(kāi)啟API加密
          關(guān)閉API加密
          關(guān)鍵點(diǎn)講解

          1、定制url訪問(wèn)權(quán)限,動(dòng)態(tài)權(quán)限讀取,需要自定義配置認(rèn)證數(shù)據(jù)源、認(rèn)證管理器、攔截器,詳情步驟請(qǐng)參考:https://www.jianshu.com/p/0a06496e75ea
          2、API加密中,由于登錄校驗(yàn)是Spring Security做的,因此我們要在UsernamePasswordAuthenticationFilter獲取賬號(hào)、密碼之前完成解密操作,正好我們的校驗(yàn)驗(yàn)證碼操作就是在它之前,同時(shí)要做響應(yīng)數(shù)據(jù)的加密操作,所以登錄部分的API加密光按照我們之前的博客來(lái)還是不夠的,需要在CaptchaFilterConfig進(jìn)行解密操作,解密后new一個(gè)自定義RequestWrapper設(shè)置Parameter,并將這個(gè)新對(duì)象傳到doFilter交由下一步處理。
          3、還是API加密問(wèn)題,我們是在程序啟動(dòng)的時(shí)候生成后端RSA秘鑰對(duì),正常來(lái)說(shuō)我們?cè)谠L問(wèn)登錄頁(yè)面進(jìn)行登錄的時(shí)候前端獲取一下就可以了,但在開(kāi)發(fā)環(huán)境中,我們通常開(kāi)啟熱部署功能,改完代碼程序可能會(huì)自動(dòng)重啟,但登錄用戶信息仍然保持在本地線程,系統(tǒng)依舊處于登錄狀態(tài)沒(méi)有跳轉(zhuǎn)到登錄頁(yè)面,導(dǎo)致后端公鑰已經(jīng)改變,但前端依舊用的是舊的后端公鑰,所有導(dǎo)致加解密失敗;解決:在訪問(wèn)index首頁(yè)時(shí)也獲取一下后端公鑰,這樣在開(kāi)發(fā)的時(shí)候idea熱部署后刷新頁(yè)面就可以了(已提交最新代碼,解決熱部署后刷新頁(yè)面還是API加解密失敗問(wèn)題;現(xiàn)在熱部署后刷新頁(yè)面即可)
          4、好多人都不知道,項(xiàng)目有工具類CodeDOM.java可以生成一套單表的完整增刪改查后臺(tái)代碼。
          配置好數(shù)據(jù)庫(kù),指定代碼生成父位置。
          運(yùn)行main函數(shù)即可一鍵生成一套單表增刪改查后臺(tái)代碼。
          后記
          這個(gè)只是一個(gè)比較簡(jiǎn)單通用的后臺(tái)系統(tǒng),如果加入工作流,就可以升級(jí)成基礎(chǔ)平臺(tái),為簡(jiǎn)化業(yè)務(wù)開(kāi)發(fā),將部分通用系統(tǒng)功能整理成獨(dú)立項(xiàng)目,具體業(yè)務(wù)功能通過(guò)iframe嵌入。
          1、新增百度富文本的使用。
          對(duì)應(yīng)字段類型,mysql要改成longtext
          2、新增“”記住我“”功能,也就是rememberMe,原理以及源碼探究請(qǐng)看這位大佬的博客:https://blog.csdn.net/qq_37142346/article/details/80114609
          需要新增一張表,SQL文件我也以及更新了。
          4、系統(tǒng)設(shè)置新增系統(tǒng)顏色,頭部、左側(cè)菜單的顏色可按心情切換(SQL文件已同步更新)
          5、用戶管理模塊新增“當(dāng)前在線用戶”管理,可實(shí)時(shí)查看當(dāng)前在線用戶,以及對(duì)當(dāng)前在線用戶進(jìn)行強(qiáng)制下線操作。
          代碼開(kāi)源

          注:數(shù)據(jù)庫(kù)文件在resources/static/sql目錄下面


          來(lái)源:cnblogs.com/huanzi-qch/p/11534203.html


          往期推薦



          Github Star全球唯一的國(guó)產(chǎn)程序員!Apache 頂級(jí)項(xiàng)目Commiter。

          Spring Boot搭建的一個(gè)在線文件預(yù)覽系統(tǒng)!支持ppt、doc等多種類型文件預(yù)覽

          7000+字帶你全面搞懂 Git 命令+原理!

          推薦一款I(lǐng)DEA神器!一鍵查看Java字節(jié)碼以及其他類信息

          手寫(xiě)一個(gè)HTTP框架:兩個(gè)類實(shí)現(xiàn)基本的IoC功能

          推薦一款國(guó)產(chǎn)開(kāi)源監(jiān)控系統(tǒng)!真不錯(cuò)!

          文章有幫助可以點(diǎn)個(gè)「在看」或「分享」,都是支持,我都喜歡!

          我是Guide哥,Java后端開(kāi)發(fā),會(huì)一點(diǎn)前端知識(shí),喜歡烹飪,自由的少年。一個(gè)三觀比主角還正的技術(shù)人。我們下期再見(jiàn)!

          瀏覽 69
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操逼视频免费观看 | 久久久夜色视频 | Japanese厨房tub高潮 | 黃色一级A片一級片 | 亚洲专区中文字幕 |