diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index b7d898f3..4ff0f16e 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -2408,6 +2408,7 @@ public void execute() { - 6、【优化】合并PR-3616,代码结构注释优化; - 7、【优化】合并PR-3619,避免调度过程中任务停止边界情况处理逻辑; - 8、【优化】合并PR-3605,避免子任务是任务本身导致死循环; +- 9、【修复】合并PR-3585,修复全局密码长度不一致问题; - 4、[规划中]升级springboot3.x,解决2.x老版本漏洞类问题。注意,springboot3.x依赖jdk17; - 5、[规划中]安全功能增强,通讯加密参数改用加密数据避免AccessToken明文, 降低token泄漏风险; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java index 279ad7d1..6b615ac2 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java @@ -56,7 +56,13 @@ public class XxlJobCompleter { for (int i = 0; i < childJobIds.length; i++) { int childJobId = (childJobIds[i]!=null && childJobIds[i].trim().length()>0 && isNumeric(childJobIds[i]))?Integer.valueOf(childJobIds[i]):-1; if (childJobId > 0) { + // valid + if (childJobId == xxlJobLog.getJobId()) { + logger.debug(">>>>>>>>>>> xxl-job, XxlJobCompleter-finishJob ignore childJobId, childJobId {} is self.", childJobId); + continue; + } + // trigger child job JobTriggerPoolHelper.trigger(childJobId, TriggerTypeEnum.PARENT, -1, null, null, null); ReturnT triggerChildResult = ReturnT.SUCCESS; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java index 2c1a0ac8..c3e8a14e 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java @@ -222,7 +222,14 @@ public class XxlJobServiceImpl implements XxlJobService { String[] childJobIds = jobInfo.getChildJobId().split(","); for (String childJobIdItem: childJobIds) { if (childJobIdItem!=null && childJobIdItem.trim().length()>0 && isNumeric(childJobIdItem)) { - XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.parseInt(childJobIdItem)); + // parse child + int childJobId = Integer.parseInt(childJobIdItem); + if (childJobId == jobInfo.getId()) { + return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_childJobId")+"("+childJobId+")"+I18nUtil.getString("system_unvalid")) ); + } + + // valid child + XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(childJobId); if (childJobInfo==null) { return new ReturnT(ReturnT.FAIL_CODE, MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_not_found")), childJobIdItem)); diff --git a/xxl-job-admin/src/main/resources/static/js/login.1.js b/xxl-job-admin/src/main/resources/static/js/login.1.js index a4203781..ef409615 100644 --- a/xxl-job-admin/src/main/resources/static/js/login.1.js +++ b/xxl-job-admin/src/main/resources/static/js/login.1.js @@ -16,12 +16,12 @@ $(function(){ userName : { required : true , minlength: 4, - maxlength: 18 + maxlength: 20 }, password : { required : true , minlength: 4, - maxlength: 18 + maxlength: 20 } }, messages : { @@ -32,7 +32,7 @@ $(function(){ password : { required : I18n.login_password_empty , minlength : I18n.login_password_lt_4 - /*,maxlength:"登录密码不应超过18位"*/ + /*,maxlength:"登录密码不应超过20位"*/ } }, highlight : function(element) { diff --git a/xxl-job-admin/src/main/resources/templates/login.ftl b/xxl-job-admin/src/main/resources/templates/login.ftl index c3f69638..e6a29e01 100644 --- a/xxl-job-admin/src/main/resources/templates/login.ftl +++ b/xxl-job-admin/src/main/resources/templates/login.ftl @@ -15,11 +15,11 @@