前言
JeecgBoot V3.9.6 是一次以「安全」为主线的版本。距离 V3.9.5 发布两个多月,这一版集中处理了社区和安全研究人员报告的 67 项安全漏洞,覆盖越权访问、租户隔离、登录爆破、短信轰炸、SQL 注入、SSRF、XSS、远程代码执行等方向,并为大量导入导出、新增、删除接口补齐了按钮权限。
功能方面,AI 流程编排新增「图像生成」节点,Online 表单支持一键生成积木报表打印、导入增强批量钩子、popup 回显等改进;代码生成器修复了一批子表、popup 字典、高级查询的生成问题;字典缓存、角色授权、部门树加载等体验和性能也同步优化。建议所有用户尽快升级。
升级日志
JeecgBoot V3.9.6 是一次以安全为核心的综合升级:集中修复 67 项安全漏洞,给大量敏感接口补齐权限控制,加强登录、短信、租户隔离和内部接口防护;AI 流程编排新增图像生成节点,Online 表单新增积木报表打印生成、导入增强批量钩子等能力;代码生成器、字典、角色授权、部门管理等模块同步修复和优化,进一步提升系统的安全性、稳定性和易用性。
一、安全与漏洞专项
本版本集中处理 67 项安全漏洞(GitHub Security Advisories),覆盖越权访问、租户隔离、登录爆破、短信轰炸、SQL 注入、SSRF、XSS 及远程代码执行等风险。
- 填值规则、校验规则、字典、首页配置、部门权限、数据规则、网关路由、系统监控、第三方集成配置及各模块 Excel 导入导出等接口补齐权限校验,普通登录用户不能再越权操作。
- 用户列表增加「选人」权限控制,没有用户管理权限时,手机号、邮箱等隐私字段一律隐藏。
- 多租户模式下用户查询只返回本租户数据;批量修改用户、设置部门负责人、租户拥有者变更等操作只允许管理员或本租户管理员执行,防止租户被接管。
- 账号不存在和密码错误统一提示并计入失败次数;重置密码短信验证码错满 5 次作废;短信接口按手机号限流;登录图形验证码一次一用并默认开启;扫码登录二维码编号改为不可预测的随机串。
- 第三方登录回调跳转地址加白名单,防止 token 外泄,并修复反射型 XSS。
/sys/api、/airag/api、/online/api等内部服务接口禁止外部直接访问,单体和微服务网关同步拦截;OPTIONS 预检请求不再能绕过签名和授权校验。- 加固表字典查询和字典过滤条件,防止越权读表和 SQL 注入;数据源连接拦截危险驱动和参数;接口和 Excel 导出不再返回数据库密码。
- SSRF 防护补全跳转绕过、0.0.0.0 和 IPv6 本机地址的拦截,新增内网地址开关和白名单配置。
- 修复富文本过滤绕过和 Online 表单详情页的存储型 XSS。
- WebSocket 只能订阅自己的消息,消息详情和发送记录不能查看他人数据;actuator 监控端点只允许管理员访问,请求追踪记录脱敏。
- OpenAPI 签名校验拒绝空密钥,清空出厂演示凭据。
- AI 应用与外挂数据接口补齐权限;AI 语音、视频记录只能查看和删除自己的;AI 工具调用增加身份校验;AI 流程导入补齐权限,防止远程执行代码;MCP 命令执行前拦截危险字符。
二、AI 应用与 AI Flow
- AI 流程编排新增「图像生成」节点,可以通过文字描述或参考图生成图片。
- AI 应用新增图像生成能力;千问图片模型保留 qwen-image-3.0-pro 和 qwen-image-3.0,并标注文生图、图生图。
- AI 思考过程中显示工具调用,工具名称显示为流程名;生成内容时用户向上滚动不再被强制拉回底部。
- AI 流程接口拆分为独立接口,AI 依赖改为按需加载;修复 AI 模块集成 LiteFlow 后业务模块无法自定义表结构的问题。
- AI 聊天助手限流配置统一,配置为空或 0 时关闭对应限流。
- 修复智能体流程无法使用对话中上传的图片、本地 Ollama 模型调用报错、清空额外参数不生效、Docker 部署插件调用连接被拒绝等问题。
三、Online 表单与低代码
- Online 表单支持一键生成积木报表打印功能,生成后自动集成打印地址。
- 新增 Online 表单数据查询接口,供积木报表直接查询 Online 数据。
- Online 导入的 Java 增强新增导入前、导入后批量处理钩子,整批导入只取一次增强对象。
- 树表列表新增「生成测试数据」按钮,测试数据按根节点生成。
- 按钮按详情、编辑、新增权限分别显示,Tab 风格子表弹窗的新增按钮也按权限隐藏。
- popup 和 popup 字典编辑时回显已勾选项;字典配置弹窗增加关联记录和他表字段配置说明。
- 批量删除也会执行 JS 增强的删除前事件。
- 修复 popup 字典超过 10 个值翻译不出来、高级查询「不为空」无效、SQL Server 下 Online 报表加 where 条件报错、ERP 子表分页数据随主表整体提交、一对一子表列数设置不生效等问题。
四、代码生成器
- 修复一对多子表的 popup 字典、关联记录、分类字典树、自定义树没有生成的问题。
- 修复小数字段、高级查询 popup 字典和关联记录字典项没有生成的问题。
- 修复导出时 popup 字典和主子表组件没有翻译的问题。
- 修复移动端一对一子表没有铺满屏幕、原生表单出现两个滚动条的问题。
五、系统管理、性能与易用性
- 管理员修改字典后,其他用户刷新页面即可看到最新字典,字典没变时不重复加载。
- 角色授权、部门角色授权后立即生效,用户无需重新登录。
- 部门树加载提速,SQL Server 下表单办理页加载慢的问题明显改善。
- 租户套餐包菜单支持分配数据规则。
- 首页配置的用户和角色支持多选,并显示为名称。
- 部门导入导出支持机构简称;部门管理用户列表增加「移出」操作;我的部门用户列表支持按姓名模糊查询。
- 修复回收站字典仍可在表单上选择、已冻结用户可重复冻结、我的消息发布人未翻译、表字典分页回填字段错位等问题。
- 修复 HTTPS 反向代理下页面白屏、大屏 WebSocket 数据集无法连接等问题。
- 升级至积木报表、积木 BI 2.5.6.1。
六、升级须知
- 选人权限: 选人组件、通讯录等功能需要「标准权限 > 用户选择查询」权限。升级脚本已默认授权给管理员;其他角色需要在角色授权里勾选,授权后重新登录生效。
- 新增按钮权限: 升级脚本会把本版新增的按钮权限自动授权给已拥有对应菜单的角色,升级前能用的功能升级后照常可用。
- 微服务部署: 微服务模式默认未开启 flyway,请按版本顺序手工执行
flyway/sql/mysql目录下V3.9.5_1~V3.9.5_4、V3.9.6_0开头的升级脚本。 - OpenAPI: 内置演示 AK/SK 已清空,需在「OpenAPI 授权管理」重新生成后才能调用。
- 前端依赖: 前端需要 pnpm 10 及以上版本。