apache / apache/servicecomb-java-chassis

[BUG] - 服务间认证,消费方多实例时,服务方认证鉴权会失败

オープン
#5,139 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
Java
スター
1.9k
フォーク
814
平均マージ
8日 23時間
マージ済み PR(30日)
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。