来源:cnblogs.com/huanzi-qch/p/11534203.html前言这套BaseAdmin是一套简单通用的后台管理系统,主要功能有:权限管理、菜单管理、用户管理、系统设置、实时日志、实时监控、API加密、登录用户修改密码、配置个性化菜单等技术栈前端:layuijava后端:SpringBoot+Thymeleaf+WebSocket+SpringSecurity+SpringData-Jpa+MySql项目结构说明java部分、html、js、css部分都是大目录。以下存储在单个表和子目录中。预览效果预览,下面具体介绍,按功能点详细介绍。功能demo登录(为了演示方便,密码输入框类型改为文本)配置文件分支选择,dev环境不需要输入验证码。支持同时登录多个限制。允许/禁止帐户在线多人游戏。登录IP地址账号过期软删除限制更多登录限制可以继续扩充。系统设置了一个简单的系统属性设置,如果你想支持更多的配置(比如这里:用户管理初始化,密码重置),你可以自己扩展。系统设置中增加了一些新功能。详见文末“补充更新”菜单管理。菜单管理是一个layui树的权限管理。每次调用保存方法时都会更新权限集合。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将日志实时输出到网页,每秒刷新一次。注意:这里的日志配置只是配置了dev环境,prod环境还没有空。发布生产环境之前记得配置一下,不然生成的日志文件不会进入日志内容!实时监控实时监控是系统硬件环境和jvm运行时内存。注:因为我没有linux环境,所以只测试了windows环境。如有问题请及时反馈,谢谢!使用websocket,数据实时输出到网页,每秒刷新一次。API加密请求参数加密响应数据加密1.系统设置中新增API加密开关,可一键关闭和开启。定义和配置身份验证数据源、身份验证管理器和拦截器。详细步骤请参考:https://www.jianshu.com/p/0a0...;2、在API加密中,由于登录验证是由SpringSecurity完成的,所以我们需要在UsernamePasswordAuthenticationFilter获取到账号密码之前完成解密操作。正好我们的验证验证码操作就在它之前,同时我们需要对响应数据进行加密,所以登录部分的API加密只是按照我们之前的博客。还是不行,需要在CaptchaFilterConfig中进行解密操作,解密后新建一个自定义的RequestWrapper来设置Parameter,并将这个新的对象传递给doFilter进行下一步操作。3.还有API加密的问题。我们在程序启动时生成后端RSA密钥对。正常情况下,我们访问登录页面登录时,可以从前端获取。但是在开发环境中,我们通常启用热部署功能,程序可能会在更改代码后自动重启,但是登录用户信息保留在本地线程,系统还处于登录状态,没有跳转到登录页面,导致后端公钥发生变化,但是前端还是使用旧的后端公钥,所有的导致加解密失败;解决方法:访问索引主页时获取后端公钥,以便开发时热部署idea后刷新页面(最新代码已提交,解决热部署稍后刷新页面或API加密)解密失败,热部署后可以刷新页面)4.很多人不知道项目有一个工具类CodeDOM。配置数据库并指定代码生成父位置。运行main函数,一键生成一套单表增删改查后台代码。后记这只是一个比较简单通用的后台系统。如果加入工作流,可以升级为基础平台。为了简化业务开发,将一些通用的系统功能组织成独立的项目,具体的业务功能通过iframe嵌入。1.新增使用百度富文本。对应字段类型,将mysql改为longtext2,并增加“rememberme”功能,即rememberMe。原理和源码探索可以参考这位大佬的博客:https://blog.csdn.net/qq_3714。..需要添加一个新表,我也更新了SQL文件。4.系统设置增加系统颜色,头像和左侧菜单颜色可根据心情切换(SQL文件已同步更新)5.用户管理模块增加“当前在线用户”管理,可实时查看当前在线用户,并可强制注销当前在线用户。代码已经开源:GitHub:https://github.com/huanzi-qch...码云:https://gitee.com/huanzi-qch/...关注Java编程鸭微信公众号,后台回复:最新技术资料可在码农大礼包中获取一份。涵盖Java框架学习、架构师学习等!
