apache / apache/servicecomb-java-chassis
[BUG] - 服务间认证,消费方多实例时,服务方认证鉴权会失败
未关闭
bug
- 主要语言
- Java
- 星标
- 1.9k
- 派生
- 814
- 平均合并
- 8 天 23 小时
- 30 天内合并 PR
- 1
描述
### Steps to Reproduce
1、ConsumerTokenManager 生成的逻辑中,token拼接使用的 applicationName 和 serviceName,但是用于签名的公私钥对是每个微服务实例生成的。
2、ProviderTokenManager 去取消费方微服务的公钥时,默认取的实例组中的 get(0) 对应的公钥,就会导致多消费实例时,其他消费方认证失败
### Expected Behavior
_No response_
### Servicecomb Version
3.3.0
### Additional Context
_No response_
贡献指南
这个仓库没有索引到贡献指南
调研方向
首先阅读 ConsumerTokenManager 中的令牌生成逻辑,以及 ProviderTokenManager 中的消费者公钥查找逻辑。在 ServiceComb 3.3.0 上使用多个消费者实例重现该故障,并跟踪 applicationName、serviceName 和实例特定密钥对的使用方式。当每个消费者实例都能成功进行身份验证并通过提供者授权时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- authentication, authorization, backend
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100