googleapis / java-storage

Apache License 2.0
103 stars 72 forks source link

Allow to create presigned URLs using HMAC keys #2560

Open ksafonov-db opened 1 month ago

ksafonov-db commented 1 month ago

Is your feature request related to a problem? Please describe. Currently com.google.cloud.storage.StorageImpl class allows to create a presigned URL using RSA algorithm. One can pass their own ServiceAccountSigner implementation (via StorageOptions.setCredentials()) but the algorithm name literal is deeply hard-coded as GOOG4-RSA-SHA256 (also in com.google.cloud.storage.SignatureInfo). It's not possible to efficiently reuse current code to sign URL via HMAC keys (https://cloud.google.com/storage/docs/authentication/signatures#signing-process).

Describe the solution you'd like Allow to pass an algorithm via StorageOptions.

Describe alternatives you've considered The only solution I see is to copy/fork all the code. Reflection seems to be too fragile.

BenWhitehead commented 1 month ago

Thank you for the Feature Request, I'll add it to our backlog. I'm not super familiar with what differences this would require in the client so I'm not able to provide an estimate on when we might be able to implement this.