前段時間咱們寫一個簡單的後臺模板SpringBoot系列——Security + Layui實現一套權限管理後臺模板,今天咱們把它完善成一個簡單通用的後臺管理系統,我把它叫作:Base Admincss
這套Base Admin是一套簡單通用的後臺管理系統,主要功能有:權限管理、菜單管理、用戶管理,系統設置、實時日誌,API加密,以及登陸用戶修改密碼、配置個性菜單等html
前端:layui前端
java後端:SpringBoot + Thymeleaf + WebSocket + Spring Security + SpringData-Jpa + MySqljava
java部分、html、js、css部分都是大目錄下面按單表一個子目錄存放git
(爲了方便演示,密碼輸入框的類型改爲text)github
配置文件分支選擇,dev環境無需輸入驗證碼web
同時支持多種登陸限制spring
更多登陸限制,還能夠繼續擴展sql
一下簡單的系統屬性設置,想支持更多的配置可自行擴展(好比這裏的:用戶管理初始、重置密碼)數據庫
菜單管理是一棵layui的Tree
權限的加載並非寫死在代碼,而是動態從數據庫讀取,每次調用save方法時更新權限集合
一、妲己是ROLE_USER權限,權限內容爲空,無權訪問/sys/下面的路徑(http://localhost:8888/sys/sysUser/get/1)
二、使用sa超級管理員進行權限管理編輯,給ROLE_USER的權限內容添加 /sys/**,妲己當即有權限訪問(http://localhost:8888/sys/sysUser/get/1)
主要包括用戶信息、登陸限制的維護,菜單、權限的分配等
修改用戶權限是下一次登陸生效
修改用戶菜單是刷新系統便可生效
登陸用戶只能修改部分信息,例如名稱、修改密碼
密碼使用的是MD5加密並轉換爲16進制字符串存儲,用戶除了能主動修改密碼外,還能叫管理員重置密碼
用戶能夠自行配置本身的個性化快捷菜單
詳情請看我以前的博客:SpringBoot系列——Logback日誌,輸出到文件以及實時輸出到web頁面
詳情請看我以前的博客:先後端API交互數據加密——AES與RSA混合加密完整實例
請求參數加密
響應數據加密
一、定製url訪問權限,動態權限讀取,須要自定義配置認證數據源、認證管理器、攔截器,詳情步驟請參考:https://www.jianshu.com/p/0a06496e75ea;
二、API加密中,因爲登陸校驗是Spring Security作的,所以咱們要在UsernamePasswordAuthenticationFilter獲取帳號、密碼以前完成解密操做,正好咱們的校驗驗證碼操做就是在它以前,同時要作響應數據的加密操做,因此登陸部分的API加密光按照咱們以前的博客來仍是不夠的,須要在CaptchaFilterConfig進行解密操做,解密後new一個自定義RequestWrapper設置Parameter,並將這個新對象傳到doFilter交由下一步處理
2019-08-18補充:
三、仍是API加密問題,咱們是在程序啓動的時候生成後端RSA祕鑰對,正常來講咱們在訪問登陸頁面進行登陸的時候前端獲取一下就能夠了,但在開發環境中,咱們一般開啓熱部署功能,改完代碼程序可能會自動重啓,但登陸用戶信息仍然保持在本地線程,系統依舊處於登陸狀態沒有跳轉到登陸頁面,致使後端公鑰已經改變,但前端依舊用的是舊的後端公鑰,全部致使加解密失敗;解決:在訪問index首頁時也獲取一下後端公鑰,這樣在開發的時候idea熱部署後刷新頁面就能夠了(已提交最新代碼,解決熱部署後刷新頁面仍是API加解密失敗問題;如今熱部署後刷新頁面便可)
這個只是一個比較簡單通用的後臺系統,若是加入工做流,就能夠升級成基礎平臺,爲簡化業務開發,將部分通用系統功能整理成獨立項目,具體業務功能經過iframe嵌入
2019-08-18吐槽:
今天改了個bug,來更新一下博客,忽然發現博客園把個人文章移出首頁了...,我這篇文章排版整齊,也有足夠的篇幅,發佈不到一天就有兩千多的閱讀量,十九個推薦,還排在最多推薦榜第一,48小時閱讀榜第三
開源不易,我不明白大家爲何忽然把這篇文章移出首頁,這讓我對博客園感到很是失望
立刻發郵件反饋,竟然說內容不足??
這已經不是我第一次想吐槽博客園了,以前我有一篇關於爬蟲的文章(免費IP代理池定時維護,封裝通用爬蟲工具類每次隨機更新IP代理池跟UserAgent池,並製做簡易流量爬蟲),多是裏面有講如何刷博客園訪問量,博客園竟然後面把個人文章移出首頁,反饋後說,該類文章不能發表至首頁
真的是對博客園有點失望
注:數據庫文件在resources/static/sql目錄下面
代碼已經開源、託管到個人GitHub、碼雲: