如何确定哪些用户需要生成删除权限?
总结
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之后,您可以采取以下措施来减轻中断。
- 通过搜索Artifactory的request.log文件(上面的REST API端点),确定哪些非管理员用户需要构建DELETE权限
- 准备一个过程,在升级完成后更新这些用户的权限,以包括构建DELETE权限
- 升级到6.6版本。或以上版本(例如6.9.0)
- 添加构建DELETE权限对于步骤#1中确定的用户
还要注意,在步骤#3和#4之间有一个小窗口,您可能会看到上述REST api失败。
