考虑以下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