Files
syly2/docs/VERIFICATION.md
T

39 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 入库验证记录
日期:2026-10-29,北京时间。
## 源码来源与此前 UAT
交接包外层 `pom.xml`、`src`、`jar` 共 5,302 个文件,入库前逐文件 SHA-256 与原构建清单一致。清单见 `evidence/original-source-manifest.json`。未采用内层重复工程或历史 target。
此前 UAT 使用 Corretto 8.512.09.1、Maven 3.9.11,在 16:46 完成主工程构建;949 个应用 class、145 个 JAR。原 WAR SHA-256 为 `7c1e4236d32f2d2106df738d2523f08588d73eab7f70089382e3ae5e7c827e76`。原始验证摘要保存在 `evidence/uat-build-20261029.json`。
当天后续 UAT 部署记录显示:登录、用户查询、酒店基本信息直接页面可用,12 项 HTTP 检查通过。浏览器记录见 `evidence/uat-browser-20261029.json`,HTTP 记录见 `evidence/uat-http-20261029.json`。旧脚本报错和酒店菜单内嵌页面切换问题尚未解决;业务填报、审核、全量报表、附件和真实外部接口不属于已完成验收。
## 入库调整
- 应用此前验证的三处编译兼容修正,保留业务算法。
- 配置文件去除数据库和邮件凭据;默认外部接口设置为本地禁用地址。
- RSA 私钥、AES 密钥和邮件/短信等硬编码凭据迁至部署环境或私有 properties 文件;移除源码中的示例生产密文和注释内凭据,历史测试 API 密钥改为私有配置。没有轮换现有密钥。
- 按已验证 UAT 的做法移除含硬编码口令的 Druid 监控 Servlet。
- 排除备份配置、Maven 缓存元数据、重复依赖 ZIP、学习资料 APK/DOC 及历史 iOS 安装包;保留应用所需的原始 JAR、前端资源和报表模板。
- 添加独立构建入口、配置模板与离线验证工具。`ops/` 保存原始 UAT 脚本,不代表本次执行过部署。
## 本地验证
入库期间 UAT 网络不可达。本轮未连接数据库、未启动应用、未替换现有 UAT 服务。
使用本机 Zulu JDK 1.8.0_412(macOS ARM64)和 Maven 3.9.11,执行 `bash scripts/build.sh`:`clean package` 成功。Maven 官方发行包已核验 SHA-512;6 个旧组件均从交接包原 JAR 注册到项目专用仓库。依赖缓存与构建产物不入库。
`scripts/verify-artifact.py` 检查 WAR CRC、登录/认证/酒店月报/密钥读取关键条目、Java 字节码版本、打包配置和 Druid 删除情况。结果为 950 个应用 class(新增 `RuntimeSecrets`)、major 52、145 个 JAR。产物摘要见 `evidence/local-build-20261029.json`。
`scripts/verify-secrets.sh` 使用原交接密钥在仅内存的进程环境中执行离线检查,不读取业务数据、不输出密钥:必需密钥缺失时报错、可选项为空、私有文件读取与环境变量优先级、AES 带前缀及无前缀密文兼容、空值及明文兼容、RSA 公私钥配对和独立解密均通过。仅加解密自检不构成登录或业务运行验收。
原 Maven 测试编译与执行显式跳过;没有声称历史集成测试通过。旧编译器参数和未固定插件版本仍有警告。本地验证不能替代 Linux/UAT 对当前入库版本的运行回归。
## 提交检查
Gitleaks 8.24.2 对暂存区完整扫描通过(约 50.6 MB 文本)。已核对并限定放行三类误报:源码文件 SHA-256、JSEncrypt 构造 PEM 文本的序列化代码、与登录表单相同的公开 userKey 字段;规则见 `.gitleaks.toml`。真实测试 API 密钥已移出。数据库密码、RSA 私钥和 AES 密钥的原值检索未发现残留。文件范围检查确认未暂存备份、运行目录、私钥文件、WAR 或移动端安装包。
`evidence/source-import-20261029.json` 记录相对原始清单的文件变化与排除项。现有原始交接目录保持不变。