这个适配器最初由网关厂商提供示例,后来停止维护。刻度云此前只在离线样本中验证过同类格式,没有在澜桥当前网关版本上跑过。合同风险清单里已经写着“旧接口兼容需以现场回放为准”。
丁卓先核对安装包来源和校验值,再把它放进一次性隔离容器。适配器只拿测试网关的读取凭证,网络出口限制为刻度云测试地址;即使程序异常,也不能连接票务生产库。
十点四十一分,健康检查返回成功。
页面显示连接已建立,网关版本、时区和测试队列名称都能读取。澜桥技术负责人在群里发了一句:“通了?”
丁卓没有回复通过。
“健康接口通,不代表事件接口通。”他把第一批十条回放任务送入队列,“等收到确认编号。”
一分钟后,刻度云事件数仍然是零。
适配器日志没有报连接中断,只反复出现一行“等待新事件”。源队列却显示十条任务已经投递,三次重试后进入未确认区。
丁卓停止继续灌入,先保存队列位置。若为了让页面有数字不断重放,只会把同一批测试事件堆成更多未知状态。
他在本地用离线文件调用解析器,十条内容全部可以识别。问题不在字段结构,而在网关把事件交给适配器之前的验证步骤。
周衡打开网络记录。
健康检查访问的是公开状态端点,不校验事件签名。真正拉取事件时,服务端返回了一个很短的拒绝码:`SIGNATURE_VERSION_UNSUPPORTED`。
接口说明写的是第一版签名:固定客户端标识,加时间戳后生成摘要。澜桥当前网关已经启用第二版,签名里增加随机数、请求路径和一次性序号,旧版请求全部拒绝。
旧适配器根本没有读取第二版响应头。
它把拒绝当成“暂时没有事件”,所以健康状态一直是绿色,实际一条数据也拿不到。
澜桥技术负责人查完变更记录,确认网关安全升级发生在两周前。厂商只更新了管理端说明,项目目录里那份接口附件仍是旧版。
这不是客户故意给错材料,也不是刻度云被竞争对手攻击。一个停止维护的适配器,遇上一次正常的安全升级,恰好在十二小时交付窗口里暴露。
业务负责人问:“测试环境能不能先关掉新签名?明早联调以后再开。”
“不能拿关闭校验得到的结果证明正式环境可用。”周衡说,“而且签名开关属于网关安全配置,不在试点授权内。”
“那用厂商管理账号直接导出?”
“合同不包含管理员权限。临时拿到完整权限,也解决不了明天旁路接入。”
丁卓试着查找厂商是否提供新版适配器。公开下载区只有两年前的旧包,客户采购的技术支持已经过期,夜间工单没有即时响应承诺。
剩下的办法只有两个。
等厂商回复,时间不受控制;或者根据客户已经提供的新签名文档,重写一个只覆盖本次试点所需字段的最小兼容层。
不能在旧包里直接跳过验证。那会让测试通过,却把伪造事件也放进时间线。也不能重写整套票务网关,十二小时内没有这种能力。
孟冉没有碰日志。她只问:“如果现在判断来不及,谁通知客户?”
“我。”周衡说。
“资料过期的时间,记下来了?”
“记了。”周衡说,“先给他们可行方案,责任就按事实谈。急着解决问题,不等于什么都替人扛。”
周衡在项目状态里写下:旧适配器与现行签名版本不兼容,连接检查结果不能作为事件接入通过;当前未影响客户生产;交付存在越过约定时间的高风险。
记录发给澜桥后,对方同意继续最小兼容方案,立即补交第二版签名正式说明与测试密钥,最迟不超过凌晨一点。验收时间暂不改;零点三十分共同检查首批接收结果,再判断是否需要延期。
晚上十一点二十三分,距离验收还有十小时三十七分。
白板上,嘉禾和汇邻的节点都没有被抹掉。澜桥业务负责人又发来消息,说厂商值班电话一直无人接听,现在只能请他们想办法。
澜桥项目旁边,多了一条红色结论。
旧适配器已经失效。