Skip to content

一个 A2A Hub 认证问题 #245

@ww1425680101

Description

@ww1425680101

发现一个 A2A Hub 认证问题,根因在 src/gep/a2aProtocol.js 的 getHubNodeSecret()。

当前实现只读取缓存和持久化 secret:

  • _cachedHubNodeSecret
  • _loadPersistedNodeSecret()

但不会读取环境变量 A2A_NODE_SECRET,导致只通过 .env / shell 注入 A2A_NODE_SECRET 的部署场景下,Hub Search 会失败(表现为 401)。临时 workaround 是:

A2A_HUB_TOKEN=$A2A_NODE_SECRET

我本地验证结果:

  1. 仅设置 A2A_NODE_SECRET 时,Hub Search 失败
  2. 额外设置 A2A_HUB_TOKEN=$A2A_NODE_SECRET 后恢复
  3. 修改 getHubNodeSecret(),优先读取 process.env.A2A_NODE_SECRET 后
  4. 删除 A2A_HUB_TOKEN workaround,Hub Search 仍成功

建议修复优先级:

  1. process.env.A2A_NODE_SECRET
  2. _cachedHubNodeSecret
  3. _loadPersistedNodeSecret()
  4. process.env.A2A_HUB_TOKEN(兼容 fallback)

a2a-node-secret-fix.patch
补丁我已整理成 diff,可直接应用。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions