apache / apache/servicecomb-java-chassis
[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