googleapis / googleapis/google-cloud-java

[google-auth-library-java] Add support for JCA Provider to ServiceAccountCredentials

Đang mở
#12,613 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
type: feature request
Ngôn ngữ chính
Java
Star
2.1k
Fork
1.2k
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
154

Mô tả

The current API for ServiceAccountCredentials does not support explicitly setting a Provider. (This is true for all Credentials implementing ServiceAccountSigner, but changing it consistently for all these should also incorporate changes to com.google.api.client.json.webtoken.JsonWebSignature in my opinion).

The current behaviour relies on JCA to always yield the correct provider for java.security.Signature regardless of how the key is stored. When the key is stored in a KeyVault or on a HSM this assumption fails. This is a design limitation in the JCA and requires the use of explicit providers.

I have a patch that fixes the issue for ServiceAccountCredentials, and suggest that similar work is done on the other GoogleCredentials implementations.

#### Environment details

- OS: All
- Java version: 1+
- google-auth-library-java version(s): All versions before 0a57cd56cca2af41e8e4645302ca602aab10be4e

#### Steps to reproduce

1. Add another JCA provider providing the "RSAwithSHA256" signature algorithm to the stack bottom of the stack.
2. Create an opaque private key.
3. Use this key for signing the authentication assertions.

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

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

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.