cloudinary / cloudinary/cloudinary_java

UploaderStrategy still requires api_secret if parameter was already added externally

Aperta
#125 4 commenti 0 reazioni 1 assegnatario Rivendicata da @yakirp Vedi su GitHub
enhancement
Lingua principale
Java
Stelle
175
Fork
113
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

This issue affects all current http artifacts:
https://github.com/cloudinary/cloudinary_java/blob/090788607f1b92f895b7b79c67e1e628719666c6/cloudinary-http42/src/main/java/com/cloudinary/http42/UploaderStrategy.java#L45-L49

Compared to the implementation on cloudinary-android:

~~~java
if (requiresSigning(action, options)) {
String apiKey = ObjectUtils.asString(options.get("api_key"), this.cloudinary().config.apiKey);
if (apiKey == null)
throw new IllegalArgumentException("Must supply api_key");
if (options.containsKey("signature") && options.containsKey("timestamp")) {
params.put("timestamp", options.get("timestamp"));
params.put("signature", options.get("signature"));
params.put("api_key", apiKey);
} else {
String apiSecret = ObjectUtils.asString(options.get("api_secret"), this.cloudinary().config.apiSecret);
if (apiSecret == null)
throw new IllegalArgumentException("Must supply api_secret");
params.put("timestamp", Long.valueOf(System.currentTimeMillis() / 1000L).toString());
params.put("signature", this.cloudinary().apiSignRequest(params, apiSecret));
params.put("api_key", apiKey);
}
}
~~~

Cloudinary Android Source: https://github.com/cloudinary/cloudinary_android/blob/f7a0b32cfd9f2b6507bb6461043e6c89d9478c03/lib/src/main/java/com/cloudinary/android/UploaderStrategy.java#L43-L59

My suggestion is to implement that for each http artifact or simply refactor the android implementation upwards to the core `AbstractUploaderStrategy`.

This allows `cloudinary-java` users to not have to enter `api_secret` if say the signature is generated via other microservices/authorization servers. This also allows easier server-side integration tests.

While I understand the audience for `cloudinary-java` is more towards server users where the secret key is most likely exposed within a monolithic service, the two reasons above are currently forcing us to mangle a separate [UploaderStrategy](https://gist.github.com/amirulzin/e7aa38991b23a87f2ea82b06561b6bd3) which simply use the above Android part instead.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.