diff --git a/docs/tasks/T-301.md b/docs/tasks/T-301.md index 39610b7..b4683c7 100644 --- a/docs/tasks/T-301.md +++ b/docs/tasks/T-301.md @@ -3,7 +3,7 @@ id: T-301 title: 设备凭据与身份隔离(F-013) phase: 3 deps: [T-201, T-204] -status: DOING +status: DONE created: 2026-08-04 vikunja_task_id: 33 context_ref: a6ad560 @@ -25,7 +25,7 @@ write_paths: - docs/04-architecture.md --- - + ## 问题 / 背景 T-204 已提供设备认证注入点,但生产实现固定拒绝全部设备请求。T-301 为采购工具建立可签发、可撤销、服务端逐请求校验的设备凭据,并把管理员会话与设备 Bearer 能力严格隔离;不提前实现领取、租约或客户端 HTTP 适配。 @@ -69,6 +69,10 @@ T-204 已提供设备认证注入点,但生产实现固定拒绝全部设备 ### 2026-08-04T12:06:14Z · ila 2026-08-04 编码前错误语义定值:请求头非法、未知、token/device 错配和已撤销统一空 401;SQLite 查询/连接故障统一空 503。两类都必须在读取 body 和调用业务处理器前失败闭合,响应不含内部原因。token_sha256 采用 32 字节 BLOB。 + +### 2026-08-04T12:58:11Z · ila + +2026-08-04 完成 T-301:实现设备凭据签发/list/幂等撤销、逐请求 SQLite Bearer+设备 ID 认证、401/503 请求体前失败闭合、管理/设备/混合身份隔离,并把生产服务收紧到 127.0.0.1:8080。两轮独立审计发现并修复损坏凭据行判定、CLI 缺失库创建以及 FILE: scheme 绕过;最终审计 PASS(无 P0/P1/P2)。实现提交 66355a7,合并提交 e674b7f;完整 init、Go 全量/竞态/vet/build、客户端 112 项测试、上下文校验与 diff-check 通过。 ## 边界