diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index b48be140..9230df26 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -2348,56 +2348,41 @@ public void execute() { ### 7.34 版本 v2.4.1 Release Notes[规划中] - 1、【优化】多个项目依赖升级至较新稳定版本,涉及netty、groovy、springboot、mybatis等; - - -### 7.35 新版本规划 [规划中] -- 1、[规划中]DAG流程任务 - - DAG任务:支持参数传递,共享数据:DAG任务创建、管理,DAG任务日志查看、操作; - - 子任务:废弃 -- 2、[规划中]多数据库支持,DAO层通过JPA实现,不限制数据库类型; -- 3、[规划中]告警增强:邮件告警 + webhook告警; -- 4、[规划中]安全强化:AccessToken动态生成、动态启停;控制调度、回调; -- 5、[规划中]任务导入导出工具,灵活支持版本升级、迁移等场景。 -- 6、【优化】[规划中]任务日志重构:一次调度只记录一条主任务,维护起止时间和状态。 - - 普通任务:只记录一条主任务; - - 广播任务:记录一条主任务,每个分片任务记录一条次任务,关联在主任务上; - - 重试任务:失败时,新增主任务。所有调度记录,包括入口调度和重试调度,均挂载主任务上。 -- 7、【优化】[规划中]分片任务:全部完成后才会出发后置节点; +- 2、【修复】"CVE-2022-43402" groovy低版本漏洞修复。 +- 3、【修复】调度日志页面XSS漏洞修复(ISSUE-3360)。 +- 4、[规划中]注册节点,弹框分页展示;解决注册节点过多时无法展示问题; ### TODO LIST -- 1、任务分片路由:分片采用一致性Hash算法计算出尽量稳定的分片顺序,即使注册机器存在波动也不会引起分批分片顺序大的波动;目前采用IP自然排序,可以满足需求,待定; -- 2、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。 -- 3、调度任务优先级; -- 4、多数据库支持,DAO层通过JPA实现,不限制数据库类型; -- 5、执行器Log清理功能:调度中心Log删除时同步删除执行器中的Log文件; -- 6、延时任务:API触发,支持"动态传参、延时消费";该功能与 XXL-MQ 冲突,该场景建议用后者; -- 7、调度线程池改为协程方式实现,大幅降低系统内存消耗; -- 8、任务、执行器数据全量本地缓存;新增消息表广播通知; -- 9、忙碌转移优化,全部机器忙碌时不再直接失败; -- 10、任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等; -- 11、调度日志列表加上执行时长列,并支持排序; -- 12、DAG流程任务: - - 替换子任务,支持参数传递,共享数据: - - 配置并列的"a-b、b-c"路径列表,构成串行、并行、dag任务流程,"dagre-d3"绘图;任务依赖,流程图,子任务+会签任务,各节点日志;支持根据成功、失败选择分支; +- 1、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。 +- 2、任务优先级:调度与执行阶段按照优先级分配资源。 +- 3、多数据库支持,DAO层通过JPA实现,不限制数据库类型。 +- 4、执行器Log清理功能:调度中心Log删除时同步删除执行器中的Log文件; +- 5、性能优化:任务、执行器数据全量本地缓存;新增消息表广播通知; +- 6、DAG流程任务 + - 子任务:废弃 + - DAG任务创建、管理,DAG任务日志查看、操作; + - 支持参数传递,共享数据; - 分片任务:全部完成后才会出发后置节点; -- 13、日期过滤:支持多个时间段排除; -- 14、告警增强: + - 配置并列的"a-b、b-c"路径列表,构成串行、并行、dag任务流程,"dagre-d3"绘图;任务依赖,流程图,子任务+会签任务,各节点日志;支持根据成功、失败选择分支; +- 7、任务标签:方便搜索; +- 8、告警增强: - 邮件告警:支持自定义标题、模板格式; - webhook告警:支持自定义告警URL、请求体格式; -- 15、新增任务运行模式 "GLUE模式(GO) ",支持GO任务; -- 16、GLUE 模式 Web Ide 版本对比功能; -- 17、注册中心优化,实时性注册发现:心跳注册间隔10s,refresh失败则首次注册并立即更新注册信息,心跳类似;30s过期销毁; -- 18、提供执行器Docker镜像; -- 19、脚本任务,支持数据参数,新版本仅支持单参数不支持需要兼容; -- 20、批量调度:调度请求入queue,调度线程批量获取调度请求并发起远程调度;提高线程效率; -- 21、执行器端口复用,复用容器端口提供通讯服务; -- 22、分片任务全部成功后触发子任务; -- 23、新增执行器描述属性;任务名称属性; -- 24、自定义失败重试时间间隔; -- 25、任务标签:方便搜索; -- 26、执行器:dag执行器,不需要注册机器; - +- 9、安全强化:AccessToken动态生成、动态启停;控制调度、回调; +- 10、任务导入导出工具,灵活支持版本升级、迁移等场景。 +- 11、任务日志重构:一次调度只记录一条主任务,维护起止时间和状态。 + - 普通任务:只记录一条主任务; + - 广播任务:记录一条主任务,每个分片任务记录一条次任务,关联在主任务上; + - 重试任务:失败时,新增主任务。所有调度记录,包括入口调度和重试调度,均挂载主任务上。 +- 12、分片任务:全部完成后才会出发后置节点; +- 13、日期过滤:支持多个时间段排除; +- 13、GLUE 模式 Web Ide 版本对比功能; +- 14、提供执行器Docker镜像; +- 15、脚本任务,支持数据参数,新版本仅支持单参数不支持需要兼容; +- 17、批量调度:调度请求入queue,调度线程批量获取调度请求并发起远程调度;提高线程效率; +- 18、执行器端口复用,复用容器端口提供通讯服务; +- 19、自定义失败重试时间间隔; ## 八、其他 diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java index 67faebcc..7333c133 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java @@ -20,9 +20,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.util.HtmlUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -154,6 +156,13 @@ public class JobLogController { } } + // fix xss + if (logResult.getContent()!=null && StringUtils.hasText(logResult.getContent().getLogContent())) { + String newLogContent = logResult.getContent().getLogContent(); + newLogContent = HtmlUtils.htmlEscape(newLogContent, "UTF-8"); + logResult.getContent().setLogContent(newLogContent); + } + return logResult; } catch (Exception e) { logger.error(e.getMessage(), e);