Compare commits

..
3 Commits
Author SHA1 Message Date
root de1e81d9b0 固定 Java 21 release 编译并更新项目说明 2026-09-14 19:17:23 +08:00
root c27bdbf026 gitignore 追加 run.out:本地运行与 JUnit 测试日志 2026-09-14 15:38:48 +08:00
root 9798f0541a 升级依赖版本并移除未使用的 httpclient
安全修复:
- netty-all 4.1.101.Final -> 4.1.138.Final:4.1.101 存在多个已知 CVE
  (netty-codec-http 修复线 4.1.108/4.1.125/4.1.129/4.1.132-4.1.137,
  netty-common 修复线 4.1.115/4.1.118)。该组件直接面向主站与公网。
- commons-compress 1.25.0 -> 1.28.0(CVE-2024-26308/25710 修复于 1.26.0)。
- logback-classic 1.4.14 -> 1.5.38,slf4j 2.0.9 -> 2.0.19。
- jackson-databind 2.15.2 -> 2.22.2:留在 Jackson 2.x 线而非迁 3,因为本组件
  负责解析并落盘快照数据,且与主站(已升 Jackson 3)的跨版本线上格式已实测兼容。
- hutool 5.8.26 -> 5.8.47;lombok 1.18.40 -> 1.18.48;junit 5.10.2 -> 5.14.4。
- native-maven-plugin 0.10.3 -> 1.1.8(配合 GraalVM 25)。

移除 org.apache.httpcomponents:httpclient 4.5.14:全仓库无任何引用
(HTTP 调用走 hutool 的 HttpRequest),且该线自 2022-11 起已 EOL。

验证:mvn test 5 项全过;隔离冒烟加载线上真实快照目录(53 个文件)——
Jackson 2.22.2 正确解析由 2.15.2 写出的 manifest,/health/subscription 报
state=ready、12 账号/12 绑定,/sub/v2 与 /sub/cat 分别 43024/125045 字节
(与升级前完全一致);与 Boot 4 主站(Jackson 3)端到端联调,
订阅快照 result=0(APPLY_SUCCESS)。
2026-09-14 14:02:30 +08:00
3 changed files with 25 additions and 28 deletions
+3
View File
@@ -37,3 +37,6 @@ build/
### Mac OS ### ### Mac OS ###
.DS_Store .DS_Store
/.idea/encodings.xml /.idea/encodings.xml
# 本地运行与测试日志
run.out
+11 -10
View File
@@ -5,9 +5,9 @@
- **Group ID:** `org.lion` - **Group ID:** `org.lion`
- **Version:** `1.0` - **Version:** `1.0`
- **Java 版本:** 21 - **Java 版本:** 21 字节码(生产使用 GraalVM JDK 25)
- **构建工具:** Maven(单模块) - **构建工具:** Maven(单模块)
- **编译目标:** GraalVM 原生镜像 - **编译目标:** 当前以 JVM/JAR + `lib/` 运行;保留 GraalVM 原生配置但尚未完成 JDK 25 原生验证
--- ---
@@ -51,7 +51,7 @@ storageNode/
│ ├── simplelogger.properties # SLF4J 日志配置(输出到 run.out) │ ├── simplelogger.properties # SLF4J 日志配置(输出到 run.out)
│ └── reflect-config.json # GraalVM 反射配置(Jackson 序列化) │ └── reflect-config.json # GraalVM 反射配置(Jackson 序列化)
└── test/ └── test/
└── java/ # 空目录(无单元测试) └── java/ # 订阅快照与下载/压缩恢复测试
``` ```
--- ---
@@ -60,12 +60,13 @@ storageNode/
| 依赖 | 版本 | 用途 | | 依赖 | 版本 | 用途 |
|---|---|---| |---|---|---|
| `io.netty:netty-all` | 4.1.101.Final | TCP 服务端/客户端 | | `io.netty:netty-all` | 4.1.138.Final | TCP 服务端/客户端 |
| `com.fasterxml.jackson.core:jackson-databind` | 2.15.2 | JSON 序列化 | | `com.fasterxml.jackson.core:jackson-databind` | 2.22.2 | JSON 序列化 |
| `org.projectlombok:lombok` | 1.18.30 | 简化样板代码(`@Data`, `@Slf4j`) | | `org.projectlombok:lombok` | 1.18.48 | 简化样板代码(`@Data`, `@Slf4j`) |
| `cn.hutool:hutool-all` | 5.8.26 | 文件操作、ZIP 压缩、HTTP 请求 | | `ch.qos.logback:logback-classic` | 1.5.38 | 日志实现 |
| `org.apache.httpcomponents:httpclient` | 4.5.14 | HTTP 客户端 | | `cn.hutool:hutool-all` | 5.8.47 | 文件操作、ZIP 压缩、HTTP 请求 |
| `org.graalvm.buildtools:native-maven-plugin` | 0.9.28 | 原生镜像编译 | | `org.apache.commons:commons-compress` | 1.28.0 | 压缩归档 |
| `org.graalvm.buildtools:native-maven-plugin` | 1.1.8 | 原生镜像配置(待验证) |
--- ---
@@ -156,7 +157,7 @@ SubscriptionSocketTimeoutMs=10000
## 架构说明 ## 架构说明
- 单模块 Maven 项目,无单元测试 - 单模块 Maven 项目,现有 5 个测试用例覆盖订阅快照和压缩失败恢复
- 硬编码文件系统路径(`/root/gallery/...`)→ 仅限 Linux 部署 - 硬编码文件系统路径(`/root/gallery/...`)→ 仅限 Linux 部署
- 外部连接:`lionwebsite.xyz`、`personal.lionwebsite.xyz`、`aaaa.gay` - 外部连接:`lionwebsite.xyz`、`personal.lionwebsite.xyz`、`aaaa.gay`
- GraalVM 原生镜像编译,包含 Jackson 反射配置 - GraalVM 原生镜像编译,包含 Jackson 反射配置
+11 -18
View File
@@ -9,8 +9,7 @@
<version>1.0</version> <version>1.0</version>
<properties> <properties>
<maven.compiler.source>21</maven.compiler.source> <maven.compiler.release>21</maven.compiler.release>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
@@ -18,57 +17,51 @@
<dependency> <dependency>
<groupId>io.netty</groupId> <groupId>io.netty</groupId>
<artifactId>netty-all</artifactId> <artifactId>netty-all</artifactId>
<version>4.1.101.Final</version> <version>4.1.138.Final</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId> <artifactId>jackson-databind</artifactId>
<version>2.15.2</version> <version>2.22.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.40</version> <version>1.18.48</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId> <artifactId>slf4j-api</artifactId>
<version>2.0.9</version> <version>2.0.19</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>ch.qos.logback</groupId> <groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId> <artifactId>logback-classic</artifactId>
<version>1.4.14</version> <version>1.5.38</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.8.26</version> <version>5.8.47</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId> <artifactId>commons-compress</artifactId>
<version>1.25.0</version> <version>1.28.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.junit.jupiter</groupId> <groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId> <artifactId>junit-jupiter</artifactId>
<version>5.10.2</version> <version>5.14.4</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
@@ -89,7 +82,7 @@
<path> <path>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.40</version> <version>1.18.48</version>
</path> </path>
</annotationProcessorPaths> </annotationProcessorPaths>
</configuration> </configuration>
@@ -120,7 +113,7 @@
<plugin> <plugin>
<groupId>org.graalvm.buildtools</groupId> <groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId> <artifactId>native-maven-plugin</artifactId>
<version>0.10.3</version> <version>1.1.8</version>
<configuration> <configuration>
<mainClass>lion.Main</mainClass> <mainClass>lion.Main</mainClass>
<imageName>storageNode</imageName> <imageName>storageNode</imageName>