通过 REST 创建 Nexus 用户 API

Create Nexus User Through REST API

我正在使用 Nexus OSS 2。11.x 并且想通过 REST 创建新用户 API。以下命令正确检索所有用户的列表,从而确认我能够调用 API:

curl -u $NEXUS_USER:$NEXUS_PASS $NEXUS_LOCAL/service/local/users

根据 API 文档,我构建了一个 JSON 用户对象:

export USER='{"data":{"email":"testing@example.com","firstName":"Test","lastName":"Ing","userId":"testing","status": "active","roles":["repository-any-read"],"password": "test123$"}}'

然后我提交 POST 请求:

curl -i -H "Accept: application/json" -H "ContentType: application/json; charset=UTF-8" -v -d "$USER" -u $NEXUS_USER:$NEXUS_PASS $NEXUS_LOCAL/service/local/users

响应返回 HTTP 201(已创建)- 但 GET /service/local/users 只返回原始用户列表。用户不在 UI 提供的列表中,并且日志(在 UI 中可用)甚至没有表明发生了任何 activity。 $NEXUS_USER 帐户处于 "Nexus Administrator" 角色。

有人对我在这里忽略的内容有什么建议吗?

上面的代码是正确的,今天执行得很好。服务器在一夜之间重新启动,并以某种方式修复了问题。

进一步明确环境变量

  • NEXUS_LOCAL 是您的 Nexus 服务器。如果您使用默认设置在本地主机上安装,则 export NEXUS_LOCAL=http://localhost:8081/nexus (Bash) 或 SET NEXUS_LOCAL=http://localhost:8081/nexus (Windows).
  • NEXUS_USERNEXUS_PASS 是具有管理员角色的帐户的明文,或者大概是 UI 管理员(没有测试后者)。

我用了上面的代码,遇到了同样的问题:

HTTP/1.1 201 Created

什么也没发生。 经过一些调试后,我注意到上面有一个简单的错字,这是一个问题。 相反:

-H "ContentType: application/json; charset=UTF-8"

应该是:

-H "Content-Type: application/json; charset=UTF-8"

(注意 Content-Type 中的破折号)它开始工作了。