考慮以下POST到Artifactory的REST API:Artifactory的用戶更新刪除管理員
curl -f -u admin:password \
-X POST \
-H 'Content-Type: application/json; charset=UTF-8' \
-d '{ "groups": ["oldgroup", "newgroup"] }' \
http://localhost/artifactory/api/security/users/targetuser
該請求並確保用戶是兩者的「oldgroup」和「新聞組」的成員,但另外它消除來自用戶的管理員權限(如果他們擁有的話):例如。更新後{ "admin": true }
更改爲{ "admin": false }
。
這樣看來,一個需要額外通過{ "admin": true }
如果用戶是管理員最初爲了避免更新的這個奇怪的副作用:
curl -f -u admin:password \
-X POST \
-H 'Content-Type: application/json; charset=UTF-8' \
-d '{ "admin": true, "groups": ["oldgroup", "newgroup"] }' \
http://localhost/artifactory/api/security/users/targetuser
這似乎並沒有被實現爲真正的更新。這是一個錯誤?我錯過了什麼嗎?
此外,我想知道這是否與我最初傳遞的'Content-Type'
標題相關,因爲我使用的是完整的application/vnd.org.jfrog.artifactory.security.User+json
,但更改爲application/json
的結果相同。
我可以看到我是否在使用PUT方法來創建或替換用戶,但這是POST請求,似乎沒有像我期望的那樣工作。
Artifactory的REST API文檔和我的研究:
- 方法:Update User
- 對象:application/vnd.org.jfrog.artifactory.security.User+json
- 類似從舊Jfrog論壇解答後:thread
感謝您的回答!我原本以爲是一樣的。但是,如果您查看RST API的文檔,您會發現它們有兩條更新User對象的路線:'PUT'和'POST'。 - 創建或替換用戶:'PUT/API /安全/用戶/ {用戶名}' - 更新用戶:'POST/API /安全/用戶/ {用戶名}' 爲筆記創建或替換明確規定:「缺少值將被設置爲默認值」 但是,更新:「使用提供的用戶詳細信息更新Artifactory中的退出用戶」 因此,我確信更新工作不正確。 – vicster
的確,我可以看到,文檔似乎也缺少「更新用戶」的這些信息。這確實令人困惑,會要求改變它,並將此行添加到「更新用戶」中。感謝您指出 – Ariel
實時更新,文檔已相應更新。 – Ariel