为什么我从 JeecgBoot 3.8.3 升级到了 3.9.5
·
一、背景
2026 年 9 月,我在 openEuler 24.03 LTS-SP4 上完整部署了 JeecgBoot 3.8.3。部署过程顺利,但后续使用中逐渐暴露出一系列问题。经过评估,我最终决定升级到 JeecgBoot 3.9.5。
这篇文章记录升级的决策过程,以及随之而来的信创环境重新部署规划。
二、3.8.3 遇到的问题
2.1 安全漏洞
3.8.3 存在多个已公开的安全漏洞:
- AI Flow 脚本执行 RCE(Issue #9144):脚本节点可执行任意系统命令
- SVG 存储型 XSS(CVE-2026-8195):影响 3.9.1 及之前版本
- 权限提升漏洞(CVE-2026-7603):FileDownloadUtils 路径穿越
- 授权不当(CVE-2025-15119):/sys/sysDepartRole/list 接口
这些漏洞在测试环境风险可控,但生产环境存在隐患。
2.2 功能不足
- Online 表单不支持多数据源
- AI 应用能力弱,知识库和流程编排有限
- JDK 17 兼容适配不完善
- 启动速度偏慢
2.3 官方升级说明
JeecgBoot 官方文档明确:
JeecgBoot 属于平台级产品,每次升级改动较大,目前做不到平滑升级。
三、3.9.5 的关键改进
3.1 安全加固
3.9.5 针对接口越权、敏感信息、XSS、SSRF、SQL 注入和脚本执行做了专项治理:
- 修复越权、SQL 注入、RCE、SSRF、存储型 XSS 等漏洞
- Apache Shiro 从 1.2.5 升级到 3.0.0
- shiro-redis 从 3.2.3 升级到 4.10
- 加强 AI Flow 脚本执行风险控制
涉及 CVE 编号 9 个。
3.2 框架升级
- 完成 Jackson 3、Tomcat 11、JDK 17 兼容适配
- 新增 Lettuce 支持
- 完善多数据库兼容(MySQL/Oracle/PG/SQL Server/达梦/KingbaseES)
- 默认 lazy-initialization 启动,提升启动速度
3.3 Online 表单增强
- 支持多数据源
- 支持外部填报
- AI 生成 Online 表单能力完善
- Excel 导入支持图片
3.4 AI 应用升级
- AI 应用支持复制、流程工具封装、插件管理
- 支持分享 Token 和限流
- 新增火山方舟接入
- 新增飞书集成
四、信创环境部署规划
4.1 环境选型
| 组件 | 选型 | 安装方式 |
|---|---|---|
| 操作系统 | openEuler 24.03 LTS-SP4 | 系统 |
| JDK | JDK 17.0.20(BiSheng 发行版) | 手动 rpm |
| 数据库 | PostgreSQL 17.10 | 源码编译 |
| 向量扩展 | pgvector 0.8.6 | 源码编译 |
| 缓存 | Redis 7.4.11 | 源码编译 |
| Web 服务器 | Nginx 1.28.3 | 源码编译 |
| 构建工具 | Maven 3.9.16 + Node.js 20.18.2 | 手动/系统 |
4.2 部署架构
openEuler 24.03 LTS-SP4
├── /data (3.3T 数据盘)
│ ├── packages/ # 安装包归档
│ ├── pgdata/ # PostgreSQL 数据
│ ├── redisdata/ # Redis 数据
│ ├── logs/ # 统一日志
│ └── jeecg-upload/ # 文件上传
├── /usr/local/ # 系统盘 (300G)
│ ├── pgsql/ # PostgreSQL 17
│ ├── redis/ # Redis 7.4
│ ├── nginx/ # Nginx 1.28
│ └── jeecg/ # JeecgBoot
└── systemd services
4.3 系列文章规划
本系列共 8 篇,从环境准备到完整部署,逐步搭建信创环境下的 JeecgBoot 3.9.5:
| 篇号 | 内容 | 说明 |
|---|---|---|
| 第 1 篇 | 为什么从 3.8.3 升级到 3.9.5(本文) | 决策背景 |
| 第 2 篇 | 环境准备:JDK + Maven + Node + 数据盘规划 | 系统基础 |
| 第 3 篇 | Redis 7.4 源码编译与内核参数调优 | 缓存准备 |
| 第 4 篇 | Nginx 1.28 源码编译与反向代理配置 | Web 准备 |
| 第 5 篇 | PostgreSQL 17 源码编译 + pgvector + SQL 转换 | 数据库准备 |
| 第 6 篇 | JeecgBoot 后端编译与 systemd 部署 | 后端上线 |
| 第 7 篇 | JeecgBoot 前端编译与 Nginx 部署 | 前端上线 |
| 第 8 篇 | 部署归档与一键恢复方案 | 运维保障 |
配套文章:
- 📖 JeecgBoot 3.9.5 MySQL 脚本一键转 PostgreSQL 完整方案(已发布)
PostgreSQL 专栏独立文章,本系列第 5 篇会引用它完成数据库初始化。
五、总结
从 3.8.3 到 3.9.5,是一次安全驱动的升级。3.8.3 的漏洞在 3.9.5 中系统性修复,Shiro 大版本升级加固了认证体系。同时在 AI 应用、Online 表单和性能方面有明显改善。
这次升级不仅是版本号变化,更是从 MySQL 到 PostgreSQL、从传统部署到信创环境的全面重构。
项目地址:https://gitee.com/dboru/jeecgboot-pg-converter
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)