Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
c6a4df2a
提交
c6a4df2a
authored
1月 19, 2024
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调度日志页面XSS漏洞修复(ISSUE-3360)。
上级
09d2a462
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
37 行增加
和
43 行删除
+37
-43
XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+28
-43
JobLogController.java
...n/java/com/xxl/job/admin/controller/JobLogController.java
+9
-0
没有找到文件。
doc/XXL-JOB官方文档.md
浏览文件 @
c6a4df2a
...
...
@@ -2348,56 +2348,41 @@ public void execute() {
### 7.34 版本 v2.4.1 Release Notes[规划中]
-
1、【优化】多个项目依赖升级至较新稳定版本,涉及netty、groovy、springboot、mybatis等;
-
2、【修复】"CVE-2022-43402" groovy低版本漏洞修复。
-
3、【修复】调度日志页面XSS漏洞修复(ISSUE-3360)。
-
4、
[
规划中
]
注册节点,弹框分页展示;解决注册节点过多时无法展示问题;
### 7.35 新版本规划 [规划中]
-
1、
[
规划中
]
DAG流程任务
-
DAG任务:支持参数传递,共享数据:DAG任务创建、管理,DAG任务日志查看、操作;
### TODO LIST
-
1、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。
-
2、任务优先级:调度与执行阶段按照优先级分配资源。
-
3、多数据库支持,DAO层通过JPA实现,不限制数据库类型。
-
4、执行器Log清理功能:调度中心Log删除时同步删除执行器中的Log文件;
-
5、性能优化:任务、执行器数据全量本地缓存;新增消息表广播通知;
-
6、DAG流程任务
-
子任务:废弃
-
2、
[
规划中
]
多数据库支持,DAO层通过JPA实现,不限制数据库类型;
-
3、
[
规划中
]
告警增强:邮件告警 + webhook告警;
-
4、
[
规划中
]
安全强化:AccessToken动态生成、动态启停;控制调度、回调;
-
5、
[
规划中
]
任务导入导出工具,灵活支持版本升级、迁移等场景。
-
6、【优化】
[
规划中
]
任务日志重构:一次调度只记录一条主任务,维护起止时间和状态。
-
DAG任务创建、管理,DAG任务日志查看、操作;
-
支持参数传递,共享数据;
-
分片任务:全部完成后才会出发后置节点;
-
配置并列的"a-b、b-c"路径列表,构成串行、并行、dag任务流程,"dagre-d3"绘图;任务依赖,流程图,子任务+会签任务,各节点日志;支持根据成功、失败选择分支;
-
7、任务标签:方便搜索;
-
8、告警增强:
-
邮件告警:支持自定义标题、模板格式;
-
webhook告警:支持自定义告警URL、请求体格式;
-
9、安全强化:AccessToken动态生成、动态启停;控制调度、回调;
-
10、任务导入导出工具,灵活支持版本升级、迁移等场景。
-
11、任务日志重构:一次调度只记录一条主任务,维护起止时间和状态。
-
普通任务:只记录一条主任务;
-
广播任务:记录一条主任务,每个分片任务记录一条次任务,关联在主任务上;
-
重试任务:失败时,新增主任务。所有调度记录,包括入口调度和重试调度,均挂载主任务上。
-
7、【优化】
[
规划中
]
分片任务:全部完成后才会出发后置节点;
### 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"绘图;任务依赖,流程图,子任务+会签任务,各节点日志;支持根据成功、失败选择分支;
-
分片任务:全部完成后才会出发后置节点;
-
12、分片任务:全部完成后才会出发后置节点;
-
13、日期过滤:支持多个时间段排除;
-
14、告警增强:
-
邮件告警:支持自定义标题、模板格式;
-
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执行器,不需要注册机器;
-
13、GLUE 模式 Web Ide 版本对比功能;
-
14、提供执行器Docker镜像;
-
15、脚本任务,支持数据参数,新版本仅支持单参数不支持需要兼容;
-
17、批量调度:调度请求入queue,调度线程批量获取调度请求并发起远程调度;提高线程效率;
-
18、执行器端口复用,复用容器端口提供通讯服务;
-
19、自定义失败重试时间间隔;
## 八、其他
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
浏览文件 @
c6a4df2a
...
...
@@ -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
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论