ARTIFACTORY:如何解决一个400坏请求错误时,试图下载或解决工件
对于那些需要重定向和使用我们的Artifactory版本直接云存储选项(即,Enterprise+, On-Premise和JFrog的基于saas的系统),你可能会遇到一个400坏请求错误。当从一些不支持重定向的旧HTTP客户端发出请求时,下载就会发生这种情况。例如,这是来自旧cURL https客户端的响应:< HTTP/1.1 400错误请求
< x-amz-request-id:
< x-amz-id-2: / / =
< Content-Type: application/xml
< Transfer-Encoding:分块
<日期:2019年7月24日星期三13:30:56 GMT
<连接:关闭
<服务器:AmazonS3
<
<?xml version="1.0" encoding="UTF-8"?>
*关闭连接1
* TLSv1.2 (OUT), TLS警报,客户端hello (1):InvalidArgument
签名查询字符串参数或授权头必须指定
授权< / ArgumentName > < ArgumentValue >不记名 *****************************
根据我们的测试,旧版本的cURL和旧版本的wget产生了这种行为(尽管这些客户机的新版本成功地服务了请求)。此外,当使用Gradle客户端从Maven存储库进行解析时,无论版本如何,请求总是会失败。
通常,只应用一种身份验证方法(承载或基本)。发生此错误是因为两者都在使用。结果,与artifactory绑定的身份验证被错误地转发到Amazon的S3服务。
要解决此错误,在使用cURL时,您需要将客户端升级到7.58.0或更高版本。使用wget,您需要将客户端升级到1.20.3或更高版本。如果你正在使用Gradle作为你的构建工具,看看吧在这里在已发布的漏洞中,该漏洞详细描述了此错误问题及其在5.6版中的修复。
注意:当使用版本为1.21.3(或最新版本)的wget客户端时,只有用户名和密码才能使用wget命令。当使用-header ="Authorization: holder
关键词:400坏请求,直接云存储
