Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
738d7721
提交
738d7721
authored
4月 17, 2024
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
"CVE-2022-43183" 越权漏洞修复。
上级
8da97ebd
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
60 行增加
和
16 行删除
+60
-16
XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+4
-3
JobInfoController.java
.../java/com/xxl/job/admin/controller/JobInfoController.java
+5
-13
XxlJobService.java
...rc/main/java/com/xxl/job/admin/service/XxlJobService.java
+12
-0
XxlJobServiceImpl.java
...ava/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
+39
-0
没有找到文件。
doc/XXL-JOB官方文档.md
浏览文件 @
738d7721
...
@@ -2363,9 +2363,10 @@ public void execute() {
...
@@ -2363,9 +2363,10 @@ public void execute() {
-
2、【修复】"CVE-2022-43402" groovy低版本漏洞修复。
-
2、【修复】"CVE-2022-43402" groovy低版本漏洞修复。
-
3、【修复】"CVE-2024-29025" netty低版本漏洞修复。
-
3、【修复】"CVE-2024-29025" netty低版本漏洞修复。
-
4、【修复】"CVE-2024-3366" freemarker模板注入漏洞修复。
-
4、【修复】"CVE-2024-3366" freemarker模板注入漏洞修复。
-
5、【修复】调度日志页面XSS漏洞修复(ISSUE-3360)。
-
5、【修复】"CVE-2022-43183" 越权漏洞修复。
-
6、【优化】执行器注册节点显示优化,解决注册节点过多时无法展示问题。
-
6、【修复】调度日志页面XSS漏洞修复(ISSUE-3360)。
-
7、
[
规划中
]
登陆态Token声称逻辑优化,混淆登陆时间属性,降低token泄漏风险。
-
7、【优化】执行器注册节点显示优化,解决注册节点过多时无法展示问题。
-
8、
[
规划中
]
登陆态Token声称逻辑优化,混淆登陆时间属性,降低token泄漏风险。
### TODO LIST
### TODO LIST
-
1、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。
-
1、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java
浏览文件 @
738d7721
package
com
.
xxl
.
job
.
admin
.
controller
;
package
com
.
xxl
.
job
.
admin
.
controller
;
import
com.xxl.job.admin.core.cron.CronExpression
;
import
com.xxl.job.admin.core.exception.XxlJobException
;
import
com.xxl.job.admin.core.exception.XxlJobException
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
...
@@ -9,8 +8,6 @@ import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
...
@@ -9,8 +8,6 @@ import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
import
com.xxl.job.admin.core.scheduler.MisfireStrategyEnum
;
import
com.xxl.job.admin.core.scheduler.MisfireStrategyEnum
;
import
com.xxl.job.admin.core.scheduler.ScheduleTypeEnum
;
import
com.xxl.job.admin.core.scheduler.ScheduleTypeEnum
;
import
com.xxl.job.admin.core.thread.JobScheduleHelper
;
import
com.xxl.job.admin.core.thread.JobScheduleHelper
;
import
com.xxl.job.admin.core.thread.JobTriggerPoolHelper
;
import
com.xxl.job.admin.core.trigger.TriggerTypeEnum
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.service.LoginService
;
import
com.xxl.job.admin.service.LoginService
;
...
@@ -29,7 +26,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
...
@@ -29,7 +26,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.*
;
/**
/**
...
@@ -139,15 +135,11 @@ public class JobInfoController {
...
@@ -139,15 +135,11 @@ public class JobInfoController {
@RequestMapping
(
"/trigger"
)
@RequestMapping
(
"/trigger"
)
@ResponseBody
@ResponseBody
//@PermissionLimit(limit = false)
public
ReturnT
<
String
>
triggerJob
(
HttpServletRequest
request
,
int
id
,
String
executorParam
,
String
addressList
)
{
public
ReturnT
<
String
>
triggerJob
(
int
id
,
String
executorParam
,
String
addressList
)
{
// login user
// force cover job param
XxlJobUser
loginUser
=
(
XxlJobUser
)
request
.
getAttribute
(
LoginService
.
LOGIN_IDENTITY_KEY
);
if
(
executorParam
==
null
)
{
// trigger
executorParam
=
""
;
return
xxlJobService
.
trigger
(
loginUser
,
id
,
executorParam
,
addressList
);
}
JobTriggerPoolHelper
.
trigger
(
id
,
TriggerTypeEnum
.
MANUAL
,
-
1
,
null
,
executorParam
,
addressList
);
return
ReturnT
.
SUCCESS
;
}
}
@RequestMapping
(
"/nextTriggerTime"
)
@RequestMapping
(
"/nextTriggerTime"
)
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java
浏览文件 @
738d7721
...
@@ -2,6 +2,7 @@ package com.xxl.job.admin.service;
...
@@ -2,6 +2,7 @@ package com.xxl.job.admin.service;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobUser
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -67,6 +68,17 @@ public interface XxlJobService {
...
@@ -67,6 +68,17 @@ public interface XxlJobService {
*/
*/
public
ReturnT
<
String
>
stop
(
int
id
);
public
ReturnT
<
String
>
stop
(
int
id
);
/**
* trigger
*
* @param loginUser
* @param jobId
* @param executorParam
* @param addressList
* @return
*/
public
ReturnT
<
String
>
trigger
(
XxlJobUser
loginUser
,
int
jobId
,
String
executorParam
,
String
addressList
);
/**
/**
* dashboard info
* dashboard info
*
*
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
浏览文件 @
738d7721
...
@@ -4,10 +4,13 @@ import com.xxl.job.admin.core.cron.CronExpression;
...
@@ -4,10 +4,13 @@ import com.xxl.job.admin.core.cron.CronExpression;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobLogReport
;
import
com.xxl.job.admin.core.model.XxlJobLogReport
;
import
com.xxl.job.admin.core.model.XxlJobUser
;
import
com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum
;
import
com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum
;
import
com.xxl.job.admin.core.scheduler.MisfireStrategyEnum
;
import
com.xxl.job.admin.core.scheduler.MisfireStrategyEnum
;
import
com.xxl.job.admin.core.scheduler.ScheduleTypeEnum
;
import
com.xxl.job.admin.core.scheduler.ScheduleTypeEnum
;
import
com.xxl.job.admin.core.thread.JobScheduleHelper
;
import
com.xxl.job.admin.core.thread.JobScheduleHelper
;
import
com.xxl.job.admin.core.thread.JobTriggerPoolHelper
;
import
com.xxl.job.admin.core.trigger.TriggerTypeEnum
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.dao.*
;
import
com.xxl.job.admin.dao.*
;
import
com.xxl.job.admin.service.XxlJobService
;
import
com.xxl.job.admin.service.XxlJobService
;
...
@@ -345,6 +348,42 @@ public class XxlJobServiceImpl implements XxlJobService {
...
@@ -345,6 +348,42 @@ public class XxlJobServiceImpl implements XxlJobService {
return
ReturnT
.
SUCCESS
;
return
ReturnT
.
SUCCESS
;
}
}
@Override
public
ReturnT
<
String
>
trigger
(
XxlJobUser
loginUser
,
int
jobId
,
String
executorParam
,
String
addressList
)
{
// permission
if
(
loginUser
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL
.
getCode
(),
I18nUtil
.
getString
(
"system_permission_limit"
));
}
XxlJobInfo
xxlJobInfo
=
xxlJobInfoDao
.
loadById
(
jobId
);
if
(
xxlJobInfo
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL
.
getCode
(),
I18nUtil
.
getString
(
"jobinfo_glue_jobid_unvalid"
));
}
if
(!
hasPermission
(
loginUser
,
xxlJobInfo
.
getJobGroup
()))
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL
.
getCode
(),
I18nUtil
.
getString
(
"system_permission_limit"
));
}
// force cover job param
if
(
executorParam
==
null
)
{
executorParam
=
""
;
}
JobTriggerPoolHelper
.
trigger
(
jobId
,
TriggerTypeEnum
.
MANUAL
,
-
1
,
null
,
executorParam
,
addressList
);
return
ReturnT
.
SUCCESS
;
}
private
boolean
hasPermission
(
XxlJobUser
loginUser
,
int
jobGroup
){
if
(
loginUser
.
getRole
()
==
1
)
{
return
true
;
}
List
<
String
>
groupIdStrs
=
new
ArrayList
<>();
if
(
loginUser
.
getPermission
()!=
null
&&
loginUser
.
getPermission
().
trim
().
length
()>
0
)
{
groupIdStrs
=
Arrays
.
asList
(
loginUser
.
getPermission
().
trim
().
split
(
","
));
}
return
groupIdStrs
.
contains
(
String
.
valueOf
(
jobGroup
));
}
@Override
@Override
public
Map
<
String
,
Object
>
dashboardInfo
()
{
public
Map
<
String
,
Object
>
dashboardInfo
()
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论