Expand description
gRPC 的 Bearer Token 鉴权
两种模式:
- 未配置 KeyStore:完全不鉴权(保持旧行为,启动日志 warn)
- 配置了 KeyStore:所有 RPC 必须带
authorization: Bearer <plaintext>metadata, 且按EndpointSpec/ proto_id / RPC 类型校验 scope
由于 gRPC 采用通用 Request(proto_id, body) RPC 模式,scope 检查优先
使用 EndpointSpec.runtime.scope;未进入 surface spec 的 legacy proto
再回退到 capability/低层 proto_id 表。SubscribePush 流式 RPC 要求
qot:read(推送混合了行情与交易,以行情 scope 为最低门槛)。
| proto_id 范围 | 所需 scope |
|---|---|
| 已声明的 1xxx 公开 query(GetGlobalState / GetUserInfo / DelayStatistics) | EndpointSpec.runtime.scope |
| legacy 1xxx 连接协议(InitConnect / KeepAlive / …) | 无(放行) |
| 3xxx 行情 | qot:read |
| 2001 / 2008 / 2101 / 2102 / 2111 / 2201 / 2211 / 2221 / 2222 / 2223 / 2225 / 2226 账户只读 | acc:read |
| 2005 UnlockTrade | trade:unlock(v1.4.104 codex F1 P1) |
| 2202 / 2205 / 2237 下单 / 改单 / 确认 | trade:real |
| 其他 | 拒绝(保守) |
Structs§
- Grpc
Adapter - v1.4.106 D1 5b: gRPC surface adapter — 把 pipeline
AuthDecision::Reject翻成 tonicStatus.
Constants§
- GRPC_
STABLE_ CONN_ NAMESPACE - gRPC stable conn_id namespace base.
Functions§
- derive_
grpc_ conn_ id - 派生 gRPC stable conn_id。
- extract_
grpc_ idempotency_ key - 从 gRPC
Request<T>metadata 提取 trade-write idempotency key。 - extract_
grpc_ session_ id - 从 gRPC
Request<T>metadata 提 optionalgrpc-session-idheader。 - extract_
grpc_ token - 从 gRPC
Request<T>metadata 提 Bearer token (case-insensitive scheme parse). 返 ownedOption<String>让 caller 决定 lifetime (避免 borrow vs move 冲突, gRPCRequest主体后续要into_inner()拿 body). - grpc_
status_ for - gRPC surface 的 rejection 状态码翻译入口.
- scope_
for_ proto - 按 proto_id 推断所需 scope.