如何确定哪些用户需要构建删除权限?

约书亚汉
2023-01-22 11:09

总结

人工6.6及以上版本引入了构建权限。它可能会影响当前需要删除或替换构建信息的构建信息部署过程。

影响版本

6.6.0及以上

细节

启动Artifactory 6.6.0,以下REST api需要build - delete权限:

如果没有适当的删除权限,REST api可能会导致HTTP 500错误(rtfact - 19039)。例如,

$ grep "api/build"请求* | grep "|500|"

| 2785 | 20190408131015 |请求11.11.11.11 | myuser |邮报| / api /构建/保留HTTP / 1.0 / mybuild | |500| 129

| 163 | 20190408042449 |请求11.11.11.11 | myuser2| | / api /构建|HTTP / 1.0 |500| 5259

人造原木或卡塔琳娜。Out可能打印类似如下的异常:

[INFO] (o.a.r.r.c.BuildResource:318) -构建'mybuild'计划运行的保留策略

2019-04-07 03:28:28,763 [art-exe -31960] [INFO] (o.a.b.b buildserviceimpl:668) -异步删除build mybuild编号:2193_win_Release

2019-04-07 03:28:28,765 [art-exec-31960] [ERROR] (o.a.w.q.WorkQueueImpl:130) -由于:用户'myuser'未被授权删除构建信息,无法调用工作队列'构建保留作业'回调。需要有删除权限。

org.artifactory.rest.exception.ForbiddenException:用户'myuser'没有被授权删除构建信息。需要有删除权限。
org.artifactory.build.BuildServiceImpl.assertDeletePermissions (BuildServiceImpl.java: 1300)
org.artifactory.build.BuildServiceImpl.deleteBuild (BuildServiceImpl.java: 597)

决议

注意:

  • 此更改不会影响具有Artifactory Admin权限的用户,因为即使在升级到6.6或更高版本之后,Admin用户也具有构建的DELETE权限。
  • 以下REST api在6.6.0之前的版本中不需要人工管理权限:构建上传,构建提升,构建重命名,控制构建保留

因此,在将Artifactory版本<6.6.0升级到>=6.6.0之后,您可以采取以下措施来减轻中断。

  1. 通过搜索上述REST API端点Artifactory的request.log文件,确定哪些非管理员用户需要构建DELETE权限
  2. 准备一个过程来更新这些用户的权限,使其在升级完成后包含build DELETE权限
  3. 升级到6.6。或以上版本(例如6.9.0)
  4. 添加构建删除权限对于步骤#1中标识的用户

还要注意,在步骤3和步骤4之间有一个小窗口,您可能会看到上面的REST api失败。