Artifactory用户更新将删除admin

时间:2017-06-03 14:29:21

标签: artifactory

考虑以下对Artifactory REST API的POST:

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"的成员。和#34; newgroup"但另外它从用户那里删除了管理员权限(如果有的话):Ex。更新后{ "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文档和我的研究:

1 个答案:

答案 0 :(得分:1)

作为Artifactory,在获取更新REST API命令后,无法确定您要更改哪些参数,例如在您更改组的情况下,它将接受您的输入并将其应用于用户。这意味着Admin的值将设置为false,因为这是该字段的默认值。如果您希望保存用户的现有配置,我建议您对用户详细信息执行get请求>将其保存到JSON文件>将其编辑为所需的值>把它贴在Artifactory上。这样你就不会改变你想要保留的值。