前言
该Base Admin是一个简单通用的后台管理系统,主要功能包括权限管理、菜单管理、用户管理、系统设置、实时日志、实时监控、API加密、登录用户密码更改、个性化
技术堆栈前端: layui
java后端: springbootthymeleafwebsocketspringsecurityspringdata-JPA MySQL
工程结构说明java节、html、js和css节都作为单个表的子目录存储在较大的目录下
运行预览见效快,具体介绍如下,按功能点进行详细介绍
3358 www.Sina.com/http://www.Sina.com/(为简化演示,将密码输入框类型更改为text )配置式的分支选择使dev环境不需要输入验证码
同时支持多个登录限制。
允许/禁止帐户多人上线。
功能演示
限制登录IP地址
帐户过期时间
登录限制增加,可以继续扩展。
登录
我们希望设置以下简单的系统属性以支持更多的配置。 例如,这里的“用户管理初期,密码重置”。
有关系统设置的新功能的详细信息,请参阅文末的“补充更新”
软删除菜单管理是layui的树
系统设置
追加删除重新评估
菜单管理权限加载并不是死于代码,而是从数据库动态读取,并在每次调用save方法时更新权限集合。
1、妲己具有ROLE_USER权限,权限内容为空,无法访问/sys/以下路径(http://localhost 33608888/sys/sysuser/get/1 )
2、使用sa超级管理员进行权限管理编辑,在ROLE_USER权限内容中添加/sys/**,妲己立即权限访问(http://localhost 33608888/sys/sysuser
权限管理
主要包括用户信息、登录限制维护、菜单和权限分配等。
用户权限更改将在下次登录时生效。
更改用户菜单后,系统更新将生效。
用户管理新的“当前在线用户”管理,详见文末的“补充更新”
动态权限加载
基本信息
登录用户只能更改部分信息,如名称和密码
用户管理
密码使用的是用MD5加密并转换为十六进制字符串的存储。 用户可以主动更改密码,也可以让管理员重置密码。
登录用户信息
用户可以设置自己定制的快捷菜单。
修改密码
使用websocket实时将日志输出到网页,并每秒更新一次。
注意:这里的日志配置仅配置了dev环境。 prod环境还不是空的。 请在发布生产环境之前进行配置。 否则,不会在生成的日志文件中输入日志内容。
个性菜单实时监测的是系统硬件环境,以及jvm运行时内存。 注意:由于本人还没有Linux环境,因此只测试了windows环境。 如果有问题请马上反馈。 谢谢你。
使用websocket实时将数据输出到网页,并每秒刷新一次。
实时日志
请求参数加密
响应数据加密
1、在系统设置中添加API加密开关,一键即可关闭、打开API加密;
打开API加密
关闭API加密
实时监控
1、自定义url访问权限和动态权限读取需要自定义配置认证数据源、认证管理器和拦截器
2、在API加密中,登录验证由Spring Security完成,所以我们会在用户名称passwordauthentic ation filter获取帐户、密码之前完成解密操作。 正好我们的验证码操作在那之前,同时进行对应数据的加密操作。 因此,登录部分的API加密仅遵循以前的博客是不够的,需要在CaptchaFilterConfig中进行解密操作,在解密后在new中进行自定义请求wrapper设定p
arameter,并将这个新对象传到doFilter交由下一步处理。3、还是API加密问题,我们是在程序启动的时候生成后端RSA秘钥对,正常来说我们在访问登录页面进行登录的时候前端获取一下就可以了,但在开发环境中,我们通常开启热部署功能,改完代码程序可能会自动重启,但登录用户信息仍然保持在本地线程,系统依旧处于登录状态没有跳转到登录页面,导致后端公钥已经改变,但前端依旧用的是旧的后端公钥,所有导致加解密失败;解决:在访问index首页时也获取一下后端公钥,这样在开发的时候idea热部署后刷新页面就可以了(已提交最新代码,解决热部署后刷新页面还是API加解密失败问题;现在热部署后刷新页面即可)
4、好多人都不知道,项目有工具类CodeDOM.java可以生成一套单表的完整增删改查后台代码。
配置好数据库,指定代码生成父位置。
运行main函数即可一键生成一套单表增删改查后台代码。
后记
这个只是一个比较简单通用的后台系统,如果加入工作流,就可以升级成基础平台,为简化业务开发,将部分通用系统功能整理成独立项目,具体业务功能通过iframe嵌入。
1、新增百度富文本的使用。
对应字段类型,mysql要改成longtext
2、新增“”记住我“”功能,也就是rememberMe
需要新增一张表,SQL文件我也以及更新了。
4、系统设置新增系统颜色,头部、左侧菜单的颜色可按心情切换(SQL文件已同步更新)
5、用户管理模块新增“当前在线用户”管理,可实时查看当前在线用户,以及对当前在线用户进行强制下线操作。
好了,到这里,这个开源的项目框架已经基本介绍完了,但是,程序员应该都清楚,这些东西,不在自己的电脑上运行起来是没有什么灵魂的,也希望大家可以在我的基础上进行整理和升级,加入属于自己的东西,让这套开源的管理系统发光发热,对各位的开发工作能够起到一点帮助
需要这个框架源码的,关注公众号:Java架构师联盟,后台回复 Java 即可查看获取方式