我已经设置了Artifactory(4.1.2)的实例,我用它来存储java文物。我使用下面配置的gradle插件将工件推送到实例
artifactory {
contextUrl = 'http://example.com/artifactory'
publish {
repository {
// The Artifactory repository key to publish to
repoKey = 'libs-release-local'
username = artifactory_username
password = artifactory_password
}
defaults {
publications('releaseJar')
}
}
}
我希望能够防止按版本覆盖已部署的人工制品。这似乎是一个常见的请求,docs说
您可以通过不授予“删除”权限来阻止用户或组覆盖已部署的版本或唯一快照。始终可以覆盖非唯一快照(前提是已授予“部署”权限)。
但是,我已经设置了deploy
个用户,该用户属于1 | deployers
组
具有相关权限1 | CanDeploy
。
CanDeploy
权限仅对Deploy/Cache
群组拥有deployers
权限。
然而!我可以使用gradle artifactoryPublish
将已部署的工件覆盖到我的内容中。
任何建议都会感激不尽:)
编辑:自提出此问题后,功能已按预期开始工作。这非常奇怪,因为我根本没有更改Artifactory设置,但是当我尝试上传与已部署的版本号相同的工件时,现在返回403
。我只能假设在访问权限的缓存方面存在一些奇怪的东西,或者某些东西导致我通过Web UI进行的更改在一两天内无效 - 令人不安但它目前正在工作。在我确保其工作的同时,会暂时提出问题!
答案 0 :(得分:3)
设置检查权限的最简单方法是在浏览器UI的“有效权限”选项卡中。 选择“releaseJar”仓库时,如果您在“部署”用户上看到“删除”权限,则可能会有另一个权限目标,即向该用户授予删除权限。 您可以在“用户”页面中查看单个用户使用的权限目标列表。 希望这可以帮助。