如何确定哪些用户需要生成删除权限?

约书亚汉
2019-04-21 18:11

总结

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

影响版本

6.6.0及以上

细节

从Artifactory 6.6.0开始,以下REST api需要构建删除权限:

如果没有适当的删除权限,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

人工制品。log或catalina。Out可能打印类似如下的异常:

2019-04-07 03:28:28,763 [http-nio-12000-exec-130] [INFO] (o.a.r.r.c.BuildResource:318) -构建'mybuild'计划运行的保留策略

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

2019-04-07 03:28:28,765 [art-exec-31960] [ERROR] (o.a.w.q.WorkQueueImpl:130) -调用工作队列“构建保留任务”回调失败,原因是:用户“myuser”没有权限删除构建信息。需要删除权限。
...
原因:用户“myuser”没有权限删除构建信息。需要删除权限。
org.artifactory.build.BuildServiceImpl.assertDeletePermissions (BuildServiceImpl.java: 1300)
org.artifactory.build.BuildServiceImpl.deleteBuild (BuildServiceImpl.java: 597)

决议

注意:

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

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

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

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