基线: v1.20 (e58137c) | 分支: agent1.21bate
## P0 严重修复 (14项)
- 安全: 命令注入漏洞修复 (SpecificTimeTaskService)
- 安全: 路径穿越漏洞修复 (AgentEndpoint)
- 安全: 下载安全加固 (AdvancedAsyncDownloader)
- 数据: CPU avg1/avg5/avg15 赋值错误修复 (CPUServiceImpl)
- 数据: 磁盘读写字节/速率赋值反转修复 (DiskServiceImpl)
- 逻辑: updateTaskInterval 丢失原始任务修复 (DynamicTaskService)
- 并发: GlobalConfig 100+ 静态字段 volatile + 并发集合
- 性能: SessionManager O(n)->O(1) Channel反向映射
- 并发: SessionManager 序列号 AtomicInteger
- 并发: CompensatedTrigger CAS 竞态修复
- 泄漏: UDPListenHandler ByteBuf 内存泄漏修复
- NPE: BaseNettyServer stop() 空指针修复
- 线程: AsyncCommandExecutor 无界线程池改有界+守护线程
- 泄漏: AdvancedAsyncDownloader 连接和线程池资源释放
## P1 重要修复 (5项)
- NetServiceImpl: Process 资源泄漏 + 超时控制
- DockerServiceImpl: 数组越界保护 + 资源释放
- MemoryServiceImpl: 除零风险修复
- SystemServiceImpl: 除零风险修复 + 异常处理规范化
## P2 代码质量 (6项)
- 100+ System.out/err -> AssertLog 日志框架
- e.printStackTrace() -> 结构化日志
- InterruptedException 中断状态恢复
- BaseNettyConfig Boolean 包装类型改基本类型
- BaseException cause 构造函数修复
- 新增安全配置项 (命令白名单/HMAC/下载安全/握手认证)
## 新增安全模块
- security/AuthHandshakeHandler.java - Netty握手认证
- security/HmacSignVerifier.java - HMAC签名验证
- security/SecureCommandExecutor.java - 安全命令执行器
- security/SecureFileDownloader.java - 安全文件下载器
- security/SecurityProperties.java - 安全配置属性
- security/SystemCommandRunner.java - 系统命令运行器
- 对应单元测试 4个
版本更新: pom.xml 0.0.1-SNAPSHOT -> 1.21-beta
application.yml 1.0 -> 1.21
涉及文件: 34个 (21 modified + 13 new)
代码变更: +1085/-868 lines
48 lines
3.0 KiB
Markdown
48 lines
3.0 KiB
Markdown
# tr-agent-client 版本记录
|
||
|
||
## 版本规则
|
||
- 主版本号.次版本号-阶段标识
|
||
- 阶段标识: beta(测试版) / rc(候选版) / release(正式版)
|
||
|
||
## 版本历史
|
||
|
||
### v1.21-beta (2026-07-22)
|
||
**基线版本**: v1.20 (commit: e58137c)
|
||
**分支**: agent1.21bate
|
||
**变更范围**: 代码安全审计与优化,涉及 21 个文件,+1085/-868 行
|
||
|
||
#### P0 严重修复 (安全 & 数据正确性)
|
||
1. **命令注入漏洞修复** - SpecificTimeTaskService: 添加命令安全校验、白名单机制、危险字符检测
|
||
2. **路径穿越漏洞修复** - AgentEndpoint: 添加 normalize() + startsWith() 路径校验
|
||
3. **下载安全加固** - AdvancedAsyncDownloader: 添加协议白名单、文件大小限制、路径穿越防护
|
||
4. **CPU负载数据丢失修复** - CPUServiceImpl: avg1/avg5/avg15 三行全调 setAvg1(),1分钟和15分钟数据丢失
|
||
5. **磁盘读写数据反转修复** - DiskServiceImpl: 读写字节和读写速率赋值完全反转
|
||
6. **任务更新丢失修复** - DynamicTaskService: updateTaskInterval 用空 Runnable 替代了原始任务
|
||
7. **线程安全修复** - GlobalConfig: 100+ 静态字段添加 volatile,集合改为 ConcurrentHashMap/CopyOnWriteArrayList
|
||
8. **Session查找性能修复** - SessionManager: 新增 Channel->Session 反向映射,O(n)->O(1)
|
||
9. **序列号线程安全修复** - SessionManager: getSerialNumber 改用 AtomicInteger
|
||
10. **竞态条件修复** - CompensatedTrigger: get+set 竞态改用 CAS 循环
|
||
11. **内存泄漏修复** - UDPListenHandler: ByteBuf 未释放
|
||
12. **NPE修复** - BaseNettyServer: stop() 方法 NPE 风险
|
||
13. **无界线程池修复** - AsyncCommandExecutor: 改为有界线程池 + 守护线程
|
||
14. **资源泄漏修复** - AdvancedAsyncDownloader: 添加 connection.disconnect() 和线程池关闭
|
||
|
||
#### P1 重要修复 (资源管理 & 性能)
|
||
15. **进程资源泄漏修复** - NetServiceImpl: Process 对象未销毁,添加 destroy + waitFor 超时
|
||
16. **Docker资源泄漏修复** - DockerServiceImpl: 数组越界保护 + Process 资源释放
|
||
17. **除零风险修复** - MemoryServiceImpl: 内存总量为0时的除零异常
|
||
18. **除零风险修复** - SystemServiceImpl: 磁盘总量为0时的除零异常
|
||
19. **资源泄漏修复** - DockerServiceImpl/NetServiceImpl: Process/Reader 资源泄漏
|
||
|
||
#### P2 代码质量优化
|
||
20. **日志规范化** - 100+ 处 System.out/err 替换为 AssertLog 日志框架
|
||
21. **异常处理规范化** - 所有 e.printStackTrace() 替换为结构化日志
|
||
22. **中断处理规范化** - InterruptedException 添加中断状态恢复 (Thread.currentThread().interrupt())
|
||
23. **包装类型修复** - BaseNettyConfig: Boolean 包装类型改基本类型,消除 NPE 风险
|
||
24. **异常构造修复** - BaseException: cause 构造函数未设置 code/msg
|
||
25. **安全配置** - application-dev.yml: 新增安全配置项(命令白名单/HMAC签名/下载安全/握手认证)
|
||
|
||
### v1.20 (基线)
|
||
**commit**: e58137c "修正脚本执行策略上报信息"
|
||
**状态**: 优化前最后一个稳定版本,本次更新的基线
|