-
仅含 @Async 而无 CGLIB 触发器(如 @Transactional)的 bean(如 ImWebSocketServiceImpl) 被 JDK 动态代理后,getSelf()=SpringUtil.getBean(getClass()) 按实现类取 bean 必抛 NoSuchBeanDefinitionException,致 IM 模块全部写操作事务内通知发送回滚整体 500。 与 @EnableTransactionManagement(proxyTargetClass = true) 口径对齐根治。 验证:修复后 IM 域回归 7 例两轮全绿(jobs 1422-1425/1427-1431); 诊断实证 proxyClass=jdk.proxy2.$Proxy926 仅接口型。
-
- 修复 WebProperties 嵌套属性级联校验 - 修复邮件模板代码块包含特殊字符时的替换异常 - 补充相关回归测试
-
当 ServiceException 携带成功码 0 时,由 GlobalExceptionHandler 统一返回系统异常, 避免 CommonResult.error 再次抛出 IllegalArgumentException。 Refs #1196
-
通过 FilterRegistrationBean#setEnabled(false) 避免多 SecurityFilterChain 场景下过滤器越界处理请求,并关联 Issue #1198。
-
- 新增 MultiDictConvert,支持半角逗号存储的多值字典字段 - 支持 String、Collection、Set、具体集合类和数组字段 - 未知字典 label/value 时整体转换失败,避免返回部分结果导致数据缺失 - 补充单值、多值、空值、顺序保持和失败场景单元测试
-
- 引入 OpenTelemetry API/SDK/OTLP Exporter - 移除 OpenTracing 与 SkyWalking trace toolkit 依赖 - 改造 Tracer 自动配置、业务链路切面和异常记录逻辑 - 使用 Span.current() 获取当前 traceId - 保留 SkyWalking apm-toolkit-logback-1.x,避免影响日志链路输出 - 兼容 JDK8 servlet 依赖
-
- 排除 Redisson 默认引入的 redisson-spring-data-41 - 显式使用 redisson-spring-data-35 适配 Spring Boot 3.5 - RedisTemplate 复用同一个 JSON RedisSerializer - 单测基类切换为 RedissonAutoConfigurationV2
-
升级 Spring Boot 3.5.15、Netty、Redisson、Tika、Hutool、jsch、AWS SDK、Alipay、weixin-java 等依赖。 - easy-trans 迁移到 org.dromara 并同步 Java import - 新增 system 侧 WxJava 配置类,绕过 httpclient4 provided 依赖问题 - 将 WxJava http-client-type 切换为 HttpComponents - 移除显式 httpclient4 依赖
-
- common:LocalDateTimeUtils 增加 GMT+8 默认时区的 ofEpochSecond / toEpochSecond 重载 - system:七牛短信回调使用默认时区解析秒级时间戳,避免本机时区影响接收时间 - iot:当前时间规则使用默认时区转 epoch,修复非 GMT+8 环境下匹配结果错误 验证: - yudao-module-system 单测通过 - yudao-module-iot-biz 单测通过 - yudao-module-iot-gateway 编译通过
-
将 Redis、RabbitMQ、RocketMQ 的多租户 Bean 拆到独立条件配置, 避免未引入 yudao-spring-boot-starter-mq 的模块启动时因解析 YudaoTenantAutoConfiguration 方法签名触发 NoClassDefFoundError。 Closes https://gitee.com/zhijiantianya/yudao-cloud/issues/IJTOF4
-
- 新增 URL Path 编解码工具,保留 + 字符语义 - 文件访问基于原始 URI 解码 path,避免中文、空格、% 等字符下载异常 - 文件客户端生成 URL 时按路径段编码,S3 兼容完整 URL 和裸 path - 优化 Content-Disposition 文件名,支持 filename 和 filename* - 下载文件名优先使用文件记录的原始名称 - 补充 HTTP、Local、S3、文件服务相关单测
-
Merge pull request !1544 from 熊猫大侠/master-jdk17-iotalert
-
- 调整 MyBatisUtils.findInSet 使用 MyBatis-Plus 参数绑定 - 增加 columnName 白名单校验,避免列名被注入 - 补充 H2 兼容实现,恢复相关单测覆盖 - 替换各模块动态 FIND_IN_SET 字符串拼接写法 - 补充单参数、多参数绑定场景单测
-
# Conflicts: # pom.xml # yudao-dependencies/pom.xml # yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java # yudao-server/pom.xml
-
- 表单字段 JSON 改为按 JsonNode 逐个节点递归解析 - 跳过分割线、标签、文字等展示组件的字符串 children - 默认摘要按表单字段配置顺序取前三个真实字段 - 补充流程摘要解析单元测试,覆盖 DB form_fields 常见格式 对应 https://t.zsxq.com/x1UrW
-
- 拒绝匿名 WebSocket 握手,收紧 RTC 接听和入会忙线校验 - 支持封禁群解散,管理端解散改为独立权限码 - 增加个人表情数量配置、唯一约束和并发重复兜底 - 修复 RTC 异常断开上报、视频远端音频和好友选择大列表渲染 - 让个人表情添加失败透出后端业务错误 - 流转 P0 bug 文档,并按产品取舍记录 apiSecret 默认值不强制拦截
-
…并补充单测,基于 yudao-cloud #248 的二开