shaw
1854050df3
feat(tls-fingerprint): 新增 TLS 指纹 Profile 数据库管理及代码质量优化
新增功能:
- 新增 TLS 指纹 Profile CRUD 管理(Ent schema + 迁移 + Admin API + 前端管理界面)
- 支持账号绑定数据库中的自定义 TLS Profile,或随机选择(profile_id=-1)
- HTTPUpstream.DoWithTLS 接口从 bool 改为 *tlsfingerprint.Profile,支持按账号指定 Profile
- AccountUsageService 注入 TLSFingerprintProfileService,统一 usage 场景与网关的 Profile 解析逻辑
代码优化:
- 删除已被 TLSFingerprintProfileService 完全取代的 registry.go 死代码(418 行)
- 提取 3 个 dialer 的重复 TLS 握手逻辑为 performTLSHandshake() 共用函数
- 修复 GetTLSFingerprintProfileID 缺少 json.Number 处理的 bug
- gateway_service.Forward 中 ResolveTLSProfile 从重试循环内重复调用改为预解析局部变量
- 删除冗余的 buildClientHelloSpec() 单行 wrapper 和 int64(e.ID) 无效转换
- tls_fingerprint_profile_cache.go 日志从 log.Printf 改为 slog 结构化日志
- dialer_capture_test.go 添加 //go:build integration 标签,防止 CI 失败
- 去重 TestProfileExpectation 类型至共享 test_types_test.go
- 修复 9 个测试文件缺少 tlsfingerprint import 的编译错误
- 修复 error_policy_integration_test.go 中 handleError 回调签名被错误替换的问题
2026-03-27 14:33:05 +08:00
..
2026-03-23 03:49:28 +08:00
2026-03-08 14:12:17 +08:00
2026-03-14 17:37:34 +08:00
2026-03-23 10:16:52 +08:00
2026-03-23 10:16:52 +08:00
2026-03-11 17:12:57 +08:00
2026-03-08 04:37:20 +08:00
2026-03-27 14:33:05 +08:00
2026-03-27 14:33:05 +08:00
2026-03-16 21:14:52 +08:00
2026-03-27 14:33:05 +08:00
2026-03-14 12:56:34 +08:00
2026-03-27 14:33:05 +08:00
2026-03-19 22:27:55 +08:00
2026-03-19 22:27:55 +08:00
2026-03-12 23:37:36 +08:00
2026-03-18 10:06:35 +08:00
2026-03-12 23:37:36 +08:00
2026-03-16 16:22:31 +08:00
2026-03-23 10:16:52 +08:00
2026-03-25 19:03:12 +08:00
2026-03-07 15:06:13 +08:00
2026-03-07 15:06:13 +08:00
2026-03-20 00:04:01 +08:00
2026-03-20 00:04:01 +08:00
2026-03-27 14:33:05 +08:00
2026-03-21 23:47:39 +08:00
2026-03-18 15:03:24 +08:00
2026-03-25 19:03:12 +08:00
2026-03-25 19:03:12 +08:00
2026-03-25 17:38:41 +08:00
2026-03-16 04:58:23 +08:00
2026-03-16 04:58:23 +08:00
2026-03-16 04:58:58 +08:00
2026-03-27 14:33:05 +08:00
2026-03-17 01:47:08 +08:00
2026-03-27 14:33:05 +08:00
2026-03-25 19:03:12 +08:00
2026-03-23 03:49:28 +08:00
2026-03-16 01:31:54 +08:00
2026-03-07 17:02:19 +08:00
2026-03-07 17:02:19 +08:00
2026-03-15 14:04:13 +08:00
2026-03-19 22:27:55 +08:00
2026-03-19 22:27:55 +08:00
2026-03-19 22:27:55 +08:00
2026-03-19 22:27:55 +08:00
2026-03-15 14:04:13 +08:00
2026-03-09 13:13:39 +08:00
2026-03-09 13:13:39 +08:00
2026-03-09 13:13:39 +08:00
2026-03-12 02:42:57 +03:00
2026-03-16 20:22:10 +08:00
2026-03-16 20:22:10 +08:00
2026-03-13 17:00:16 +08:00
2026-03-13 17:00:16 +08:00
2026-03-13 17:00:16 +08:00
2026-03-13 17:00:16 +08:00
2026-03-13 19:15:27 +08:00
2026-03-13 19:15:27 +08:00
2026-03-19 19:03:13 +08:00
2026-03-20 10:54:50 +08:00
2026-03-18 11:08:58 +08:00
2026-03-16 01:31:54 +08:00
2026-03-09 19:55:18 +08:00
2026-03-09 19:55:18 +08:00
2026-03-23 03:49:28 +08:00
2026-03-12 16:53:18 +08:00
2026-03-12 16:53:18 +08:00
2026-03-12 16:53:18 +08:00
2026-03-18 14:16:50 +08:00
2026-03-26 11:17:25 +08:00
2026-03-21 23:36:30 +08:00
2026-03-27 14:33:05 +08:00
2026-03-14 02:21:22 +08:00
2026-03-27 14:33:05 +08:00
2026-03-10 11:20:10 +08:00
2026-03-19 16:56:18 +08:00
2026-03-26 11:17:25 +08:00
2026-03-24 09:32:34 +08:00
2026-03-27 14:33:05 +08:00
2026-03-24 09:32:34 +08:00
2026-03-27 14:33:05 +08:00
2026-03-23 10:16:52 +08:00
2026-03-27 14:33:05 +08:00
2026-03-22 17:26:44 +08:00
2026-03-24 15:19:01 +08:00
2026-03-13 17:00:16 +08:00
2026-03-13 17:00:16 +08:00
2026-03-27 14:33:05 +08:00
2026-03-12 16:53:18 +08:00
2026-03-27 14:33:05 +08:00
2026-03-21 01:24:59 +08:00
2026-03-23 10:16:52 +08:00
2026-03-12 11:04:14 +08:00
2026-03-24 09:32:01 +08:00
2026-03-24 09:32:01 +08:00
2026-03-23 03:49:28 +08:00
2026-03-16 01:31:54 +08:00
2026-03-24 09:31:32 +08:00
2026-03-18 10:06:35 +08:00
2026-03-18 10:06:35 +08:00
2026-03-18 10:06:35 +08:00
2026-03-26 11:17:25 +08:00
2026-03-27 14:33:05 +08:00
2026-03-19 16:56:18 +08:00
2026-03-26 11:17:25 +08:00
2026-03-18 11:08:58 +08:00
2026-03-18 11:08:58 +08:00
2026-03-23 03:49:28 +08:00
2026-03-23 03:49:28 +08:00
2026-03-23 03:50:03 +08:00
2026-03-23 03:50:03 +08:00
2026-03-19 19:03:13 +08:00
2026-03-19 19:03:13 +08:00
2026-03-19 03:24:31 +08:00
2026-03-19 03:24:31 +08:00
2026-03-19 22:02:08 +08:00
2026-03-17 19:25:35 +08:00
2026-03-21 01:23:54 +08:00
2026-03-10 03:00:58 +08:00
2026-03-16 10:28:51 +08:00
2026-03-12 16:53:18 +08:00
2026-03-24 19:02:40 +08:00
2026-03-20 13:36:54 +08:00
2026-03-14 10:47:31 +08:00
2026-03-27 14:33:05 +08:00
2026-03-24 14:50:03 +08:00
2026-03-24 14:50:03 +08:00
2026-03-09 15:08:37 +08:00
2026-03-16 01:31:54 +08:00
2026-03-23 03:50:03 +08:00
2026-03-09 09:51:26 +08:00
2026-03-16 10:50:02 +08:00
2026-03-23 03:50:03 +08:00
2026-03-27 14:33:05 +08:00
2026-03-23 10:16:52 +08:00
2026-03-09 09:51:26 +08:00
2026-03-14 18:47:37 +08:00
2026-03-20 18:22:00 +08:00
2026-03-23 10:16:52 +08:00
2026-03-21 23:30:13 +08:00
2026-03-21 23:30:13 +08:00
2026-03-11 17:32:00 +08:00
2026-03-15 17:26:18 +08:00
2026-03-11 17:32:00 +08:00
2026-03-11 17:32:00 +08:00
2026-03-13 17:18:04 +08:00
2026-03-15 17:26:18 +08:00
2026-03-15 17:26:18 +08:00
2026-03-21 23:49:50 +08:00
2026-03-21 23:30:13 +08:00
2026-03-18 16:22:19 +08:00
2026-03-19 19:03:13 +08:00
2026-03-19 19:03:13 +08:00
2026-03-17 08:40:08 +08:00
2026-03-17 08:40:08 +08:00
2026-03-14 02:21:22 +08:00
2026-03-23 03:49:28 +08:00
2026-03-08 06:59:53 +08:00
2026-03-07 21:24:06 +08:00
2026-03-25 19:46:17 +08:00
2026-03-23 10:16:52 +08:00
2026-03-16 01:31:54 +08:00
2026-03-08 06:59:53 +08:00
2026-03-08 06:59:53 +08:00
2026-03-12 02:42:57 +03:00
2026-03-26 11:17:25 +08:00
2026-03-26 16:43:38 +08:00
2026-03-21 01:24:30 +08:00
2026-03-21 01:24:30 +08:00
2026-03-19 22:27:55 +08:00
2026-03-18 10:06:35 +08:00
2026-03-23 03:49:28 +08:00
2026-03-18 11:32:35 +08:00
2026-03-13 10:39:35 +08:00
2026-03-18 09:23:19 +08:00
2026-03-27 14:33:05 +08:00
2026-03-23 03:49:28 +08:00
2026-03-25 19:03:12 +08:00
2026-03-16 01:31:54 +08:00
2026-03-12 16:53:18 +08:00
2026-03-12 16:53:18 +08:00
2026-03-12 18:38:09 +08:00
2026-03-21 01:22:16 +08:00
2026-03-21 01:22:16 +08:00
2026-03-12 23:37:36 +08:00
2026-03-19 22:27:55 +08:00
2026-03-19 22:27:55 +08:00
2026-03-18 09:23:19 +08:00
2026-03-27 14:33:05 +08:00