docs: 研究整理——同步认证迁至 ca 后的过时描述、补 liblogc 与测试清单

- ARCHITECTURE/MODULES:ca 版本 v1.1.0、共享基础库补 liblogc、tests 描述与实际 9 个文件对齐、docs 篇数 57
- core README/报告/HttpTask 注释:管理员鉴权由"gateway 唯一权威"更正为 ca(v0.9.0 认证迁址后描述滞后)
- ca/gateway README 架构图 static:9200 → fsys:9200、db:8005 → db2:8005
- 主 README 与 blackbox README 补 test_core_confs.py,test_gateway 文档更新为 ca:8443 契约
This commit is contained in:
qing committed 2026-08-10 15:55:43 +00:00
1 parent 7467e7bd42
commit da8ebbf9e6
10 files changed
+27 -23

No files matched your search

+8 -8
View File
@@ -152,10 +152,10 @@ namespace process_http_server {
return "";
}
/* 管理员验证:调用 gateway 的 /admin/verify 验签端点,验证请求携带的 Token 是否为有效管理员。
* gateway 是 Token 签发与验证的唯一权威(RSA 验签 + is_admin + 过期检查)。
* gateway 地址由环境变量 GATEWAY_HOST/GATEWAY_PORT 配置,默认 127.0.0.1:8443。
* gateway 不可用或响应异常一律视为未授权(fail-closed)。 */
/* 管理员验证:调用 ca 的 /admin/verify 验签端点,验证请求携带的 Token 是否为有效管理员。
* ca 是 Token 签发与验证的唯一权威(RSA 验签 + is_admin + 过期检查,v0.9.0 起由 gateway 迁至 ca)。
* ca 地址由环境变量 GATEWAY_HOST/GATEWAY_PORT 配置(沿用旧名),默认 127.0.0.1:8443。
* ca 不可用或响应异常一律视为未授权(fail-closed)。 */
static bool verify_admin_token(const http::request<http::string_body>& req) {
try {
/* 提取 Token:Authorization 头优先,回退 Cookie */
@@ -173,7 +173,7 @@ namespace process_http_server {
}
if (raw.empty() || raw.substr(0, 7) != "Bearer ") return false;
/* gateway 地址 */
/* ca 地址 */
std::string host = "127.0.0.1";
int port = 8443;
if (const char* h = std::getenv("GATEWAY_HOST")) host = h;
@@ -276,7 +276,7 @@ namespace process_http_server {
res.version(req.version());
res.set(http::field::content_type, "application/json");
/* 管理员认证:调用 gateway 验签,未授权直接拒绝 */
/* 管理员认证:调用 ca 验签,未授权直接拒绝 */
if (!verify_admin_token(req)) {
res.result(http::status::unauthorized);
res.body() = buildJsonResponse(false, "Unauthorized: admin token required");
@@ -311,7 +311,7 @@ namespace process_http_server {
res.version(req.version());
res.set(http::field::content_type, "application/json");
/* 管理员认证:调用 gateway 验签,未授权直接拒绝 */
/* 管理员认证:调用 ca 验签,未授权直接拒绝 */
if (!verify_admin_token(req)) {
res.result(http::status::unauthorized);
res.body() = buildJsonResponse(false, "Unauthorized: admin token required");
@@ -364,7 +364,7 @@ namespace process_http_server {
res.version(req.version());
res.set(http::field::content_type, "application/json");
/* 管理员认证:调用 gateway 验签,未授权直接拒绝 */
/* 管理员认证:调用 ca 验签,未授权直接拒绝 */
if (!verify_admin_token(req)) {
res.result(http::status::unauthorized);
res.body() = buildJsonResponse(false, "Unauthorized: admin token required");