UploaderStrategy still requires api_secret if parameter was already added externally
@yakirp 已經在處理了。
開始於 2018年5月7日。
評估
這個 Issue 還沒有評估資料。
描述
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:
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 which simply use the above Android part instead.
- 主要語言
- Java
- 星號
- 176
- 分支
- 113
- 平均合併
- 9 天 20 小時
- 30 天內合併 PR
- 2
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 沒有貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
cloudinary/cloudinary_java 的其他 Issue
-
`options` map modified directly可能重新可做 @adimiz1 於 481 天前認領,目前沒有進行中的 PR。 未關閉
cloudinary/cloudinary_java#383 · 3 則留言 · 1 個 reaction · 已指派 1 人 ·
-
Api#resourceByAssetID does not support same options as in documentation可能重新可做 @adimiz1 於 646 天前認領,目前沒有進行中的 PR。 未關閉
cloudinary/cloudinary_java#357 · 2 則留言 · 已指派 1 人 ·
-
Readme - Maven dependency可能重新可做 @adimiz1 於 754 天前認領,目前沒有進行中的 PR。 未關閉
cloudinary/cloudinary_java#349 · 1 則留言 · 已指派 1 人 ·
-
cloudinary-http5 ignores system properties可能重新可做 @adimiz1 於 754 天前認領,目前沒有進行中的 PR。 未關閉
cloudinary/cloudinary_java#348 · 2 則留言 · 已指派 1 人 ·
-
Make usage of http clients (apache, OkHttp, Jetty, Asynch) easier可能重新可做 @ManishS6 於 772 天前認領,目前沒有進行中的 PR。 未關閉
難度 5/5 一週以上 新手友好度 25/100
cloudinary/cloudinary_java#343 · 6 則留言 ·
查看 cloudinary/cloudinary_java 的全部 Issue
相似的 Issue
-
bug(core): skip_nodes.json is missing SELECT and PRE, causing Python and Java to insert separators into dropdown options and preformatted text可能已有人在做 @Bhumit267 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 85/100
維護者通常 1 天內回覆
-
ExceptionThrowShouldUseContext: NullPointerException on a catch block inside an annotation type可能已有人在做 @Carbon14-48 今天認領。 未關閉approved
難度 2/5 1-3 小時 新手友好度 72/100
checkstyle/checkstyle#22784 · 1 則留言 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 74/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 62/100
ASSERT-KTH/depclean#591 ·
維護者通常 1 天內回覆
-
Api537FlareFlameModel.setStackHeightM accepts a negative height可能已有人在做 @EvenSol 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 74/100
維護者通常 1 天內回覆