尝试删除工件时,身份验证不起作用(“HttpResponseException:Forbidden”)

时间:2013-02-26 15:12:06

标签: groovy artifactory

我正在尝试使用在Jenkins任务中运行的Groovy脚本从Artifactory存储库中删除工件。该脚本收集存储库的给定路径中与时间戳匹配的所有工件,然后尝试从存储库中删除这些工件。

脚本的有趣部分如下:

def base.url = 'http://name:port'
def repo = 'my-repo'
def path = 'my-path'
def artifact = 'my-artifact'
def url.to.delete = base.url + '/artifactory/' + repo + '/' + path + '/' + artifact 
print "url.to.delete = " + url.to.delete

def server = new RESTClient(base.url)
server.auth.basic('user', 'password')   
def resp = server.delete(path: url.to.delete)

delete语句导致此异常

groovyx.net.http.HttpResponseException: Forbidden
    at groovyx.net.http.RESTClient.defaultFailureHandler(RESTClient.java:240)
    at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:508)
    at groovyx.net.http.RESTClient.delete(RESTClient.java:196)
    at groovyx.net.http.RESTClient$delete.call(Unknown Source)
    at Artifactory$_deleteartifactsWithTimestamps_closure2.doCall(hudson4086512083232103441.groovy:87)
    at Artifactory.deleteartifactsWithTimestamps(hudson4086512083232103441.groovy:80)
    at Artifactory$deleteartifactsWithTimestamps.callCurrent(Unknown Source)
    at Artifactory.deleteSnapshots(hudson4086512083232103441.groovy:32)
    at Artifactory$deleteSnapshots.call(Unknown Source)
    at hudson4086512083232103441.run(hudson4086512083232103441.groovy:170)

计算出的url.to.delete似乎是正确的 - 如果我从日志中复制它并将其粘贴到我的浏览器的地址字段,工件将被下载没有问题。可以从Groovy脚本访问Artifactory - 使用相同数据收集路径工件的GET可以正常工作。

我使用Artifactory 2.6.4(免费版!),Groovy 2.1.1和http-builder-0.6.jar。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您的用户可能没有删除权限。您的回复表明客户来电是正确的。

答案 1 :(得分:0)

问题是“允许匿名访问”已打开。关闭此功能后,可以使用基本身份验证。