v0.0.6
Highlights
Puppet 组件可用性大修 —— 针对「独立 Tomcat + puppet 注入 commonLoader + webapp idle」这类典型部署,把容器管理 / 凭据采集 / 数据库 / 资源读取 / Spring 框架信息全面打通;并新增「类与资源」前端 Tab,一站式查看 puppet 进程内任意 classpath 资源。
What's New
🛠 组件兼容性增强(覆盖 Tomcat 6/7/8/9/10/11、WebLogic 全版本、Spring 5/6)
TomcatCatalinaManageComponentunLoadFilter:改用公开 API + 清filterConfigs缓存,卸载即时生效(不必等下一次请求)unLoadListener:三个字段名轮询兼容 Tomcat 6/7/8.5+
WeblogicCatalinaManageComponent- 移除类加载期 static 缓存(首次扫到空就永远空的老 bug)
- 新增
PlatformMBeanServer路径作为兜底
SpringFrameworkManageComponent/CredentialHarvestComponent- 新增 Tomcat StandardContext 反推 ServletContext 的兜底路径
- 兼容
javax.servlet(Spring 5+Tomcat 9) 与jakarta.servlet(Spring 6+Tomcat 10+) 两套签名
DatabaseComponent- JDBC driver 加载三层 CL 降级:contextCL → systemCL → 所有 WebappClassLoader
- 直接
Driver.connect(url, props)绕开 DriverManager 的同 CL 校验
ResourceComponent(重写)catch (Throwable)兜底 + 无条件回写 results,根除「响应解码结果为空」- 资源加载同样三层 CL 降级,可读 webapp 内的
.class/application.yml/MANIFEST.MF
✨ 新增「类与资源」浏览器
- PuppetConsole 工具列新增独立 Tab,按类名或路径读取 puppet 进程内 classpath 资源
- 自动识别
0xCAFEBABE/文本/二进制并按类型预览(反编译 java / UTF-8 文本 / 十六进制 dump) - 复制、下载、最近 6 条历史
- 后端新接口
POST /puppet-node/resource/get,含审计日志
🛡 安全加固
- YAML 反序列化收口(SafeConstructor 禁
!!java.*) - Disguise 动态编译入口的鉴权
- 三处 zip 导入路径加 SafeZipReader 防 zip bomb(条目数/单条/总大小三重限制)
🧹 重构
- Plugin 导入冲突策略改
ConflictPolicy枚举 - 前端 4 个新 composable + 11 个 dialog 迁移
- 提取
PluginFormFields共享组件(-260 行) - 统一
utils/downloadBlob.js
Compatibility Matrix
| 场景 | 0.0.5 | 0.0.6 |
|---|---|---|
| Idle Tomcat 容器面板列表(无活跃请求) | ❌ | ✅ |
| Idle Spring Boot 凭据采集 / 框架信息 | ❌ | ✅ |
| WebLogic 普通 CL 注入下的容器列表 | ❌ | ✅ |
| Tomcat 6 卸载 Listener | ❌ | ✅ |
| Filter 卸载即时生效 | ❌ | ✅ |
| 跨 CL 使用 webapp 内 JDBC driver | ❌ | ✅ |
| 查看 webapp 内的 class 字节码 | ❌ | ✅ |