From 34a28a49a2614a20af5959855318cf427bec5825 Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sat, 23 Aug 2025 23:35:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1Bean=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E8=A7=84=E5=88=99=E8=B0=83=E6=95=B4=EF=BC=8C=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=86=97=E4=BD=99=E4=B8=8D=E5=BF=85=E8=A6=81=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E7=B3=BB=E7=BB=9F=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E6=8F=90=E5=89=8D=E5=88=9D=E5=A7=8B=E5=8C=96=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 11 ++++++----- .../core/executor/impl/XxlJobSpringExecutor.java | 16 +++++++++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index bec16280..72b8c330 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -2555,8 +2555,10 @@ public void execute() { - 9、【修复】合并PR-3747,修复异常情况下资源泄漏风险; - 10、【优化】调度中心系统日志调整,支持启动时指定 -DLOG_HOME 参数自定义日志位置;同时优化日志格式提升易读性; - 11、【新增】GLUE模式(Python) 扩展,可选 "GLUE(Python3)" 或 "GLUE(Python2)" 两种模式,分别支持 python3/2 多版本; - -- 3、【规划中】登录安全升级,密码加密处理算法从Md5改为Sha256; +- 12、【优化】任务Bean扫描规则调整,过滤冗余不必要扫描,避免系统组件提前初始化; +- +- 13、【ING】底层组件移除单例写法,汇总factory统一管理; +- 14、【ING】登录安全升级,密码加密处理算法从Md5改为Sha256; ``` // 1、用户表password字段需要调整长度,执行如下命令 ALTER TABLE xxl_conf_user @@ -2565,9 +2567,8 @@ ALTER TABLE xxl_conf_user // 2、存量用户密码需要修改,可执行如下命令将密码初始化 “123456”;也可以自行通过 “SHA256Tool.sha256” 工具生成其他初始化密码; UPDATE xxl_conf_user t SET t.password = '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92' WHERE t.username = {用户名}; ``` -- 2、【规划中】登录认证重构,规范登录态以及权限认证逻辑,提升系统安全; -- 1、【规划中】登陆态Token生成逻辑优化,混淆登陆时间属性,降低token泄漏风险; -- 2、【规划中】组件扫描改为BeanPostProcessor方式,避免小概率情况下提前初始化;底层组件移除单例写法,汇总factory统一管理; +- 2、【规划中】登录认证重构,规范登录态以及权限认证逻辑,提升系统安全;登陆态Token生成逻辑优化,混淆登陆时间属性,降低token泄漏风险; + ### TODO LIST diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java b/xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java index 953903c3..4157d40b 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java @@ -27,6 +27,8 @@ public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationC private static final Logger logger = LoggerFactory.getLogger(XxlJobSpringExecutor.class); + // ---------------------- start / stop ---------------------- + // start @Override public void afterSingletonsInstantiated() { @@ -82,9 +84,14 @@ public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationC return; } // init job handler from method - String[] beanDefinitionNames = applicationContext.getBeanNamesForType(Object.class, false, true); + String[] beanDefinitionNames = applicationContext.getBeanNamesForType(Object.class, false, false); // allowEagerInit=false, avoid early initialization for (String beanDefinitionName : beanDefinitionNames) { + // filter system bean + if (isSystemBean(beanDefinitionName)) { + continue; + } + // get bean Object bean = null; Lazy onBean = applicationContext.findAnnotationOnBean(beanDefinitionName, Lazy.class); @@ -123,6 +130,13 @@ public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationC } } + // check if system bean, not job bean + private boolean isSystemBean(String beanClassName) { + return beanClassName.startsWith("org.springframework") + || beanClassName.startsWith("spring."); + } + + // ---------------------- applicationContext ---------------------- private static ApplicationContext applicationContext;