Type: grilling Status: resolved Labels: wayfinder:grilling Blocked by: None
原始鉴权决策已完成;本票在“驾驶舱真实后端数据接线”地图讨论中追加一次范围修订。当前有效结论见“决策修订”,原始事实与答案保留用于追溯。
来源:E:\pipe-ner-server\pipe-network-service。
SessionCreationPolicy.STATELESS,CSRF 已禁用。TokenService.getToken() 从请求头读取,头名由 bootstrap.yaml 的 token.header 给出,值为 Authorization;Bearer 前缀会被剥离。/api/cockpit/** 未认证时返回 401。/ws/deviceStatus 握手层可连接,客户端曾通过 authenticate 帧完成 JWT/Redis 校验;原 cockpitSubscribe 只校验 scope。allowCredentials,跨域 Cookie 会话不可行。以上是原始决策建立时的事实,不代表本次修订后的目标安全配置已完成或已在目标环境验证。
驾驶舱专用接口要求 isAuthenticated(),但首期明确不做登录页。原始候选是部署层注入 token、只走 mock,或为开发/生产分别配置凭据。
原始结论是:默认 mock,real 显式开启;驾驶舱 REST 由部署层注入 Authorization: Bearer <JWT>;401 只标受影响分区为数据不可用;WebSocket 连接后先 authenticate 再 cockpitSubscribe;页面和 store 不接触凭据。
根据“驾驶舱真实后端数据接线”地图中 #01 的确认,当前有效范围改为:
/api/cockpit/v1/** 内的驾驶舱只读 REST 接口不做鉴权。/ws/deviceStatus 内的驾驶舱 WebSocket 不做鉴权,不要求 authenticate 帧。本修订覆盖原答案中关于驾驶舱 REST Authorization 和 WS authenticate 的要求,但保留原始事实与决策历史。关联记录:报警—工单闭环读模型与 Gogs 票拆分边界、后端契约缺口待办。
已解决(已修订)。 免鉴权的目标范围已确定,后端实现和真实部署证据仍属于后续执行工作。