apache / apache/servicecomb-java-chassis

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

Đang mở
#5,139 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Java
Star
1.9k
Fork
814
Merge trung bình
8 ngày 23 giờ
Pull request đã merge (30 ngày)
1

Mô tả

### 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_

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu bằng cách đọc logic tạo token trong ConsumerTokenManager và việc tra cứu khóa công khai của consumer trong ProviderTokenManager. Tái hiện lỗi với nhiều instance consumer trên ServiceComb 3.3.0 và theo dõi cách applicationName, serviceName và các cặp khóa dành riêng cho từng instance được sử dụng. Hoàn thành khi mọi instance consumer đều có thể xác thực và vượt qua bước ủy quyền của provider thành công.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
authentication, authorization, backend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.