- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难配置zypper
客户(SLES 和 OpenSUSE)与我们的合作 RPM Repository
在 JFrog由于一些“身份验证”问题。一开始我以为只是zypper
的问题和 opensuse 所以我首先专注于我们努力使事情与 zypper 一起工作。 This是上一个问题。
但是这些与身份验证相关的错误时不时会出现在 yum
中。客户端(centOS)也是如此,虽然不是那么频繁。
所以我试着做 man-in-the-middle
看看幕后发生了什么,这是 zypper
的序列:
场景 1 - 成功认证
以下是zypper refresh --repo myrepo
的序列:
(1) zypper
发送 HTTP HEAD
与 base64
的请求-编码 username:
:
HEAD /myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml HTTP/1.1
Host: rpm.example.com
Authorization: Basic dXNlcm5hbWU6
User-Agent: ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
Accept: */*
Connection: close
(2)
jfrog
响应 HTTP
401 Unauthorized
与
WWW-Authenticate
标题:
HTTP/1.1 401 Unauthorized
Date: Thu, 28 May 2020 08:20:04 GMT
Content-Type: application/json;charset=ISO-8859-1
Connection: close
Server: Artifactory/7.4.3 70403900
X-Artifactory-Id: 2148103ba10eacbb:-16f1c4c1:172093a231a:-8000
X-Artifactory-Node-Id: artifactory-server
WWW-Authenticate: Basic realm="Artifactory Realm"
(3)
zypper
发送另一个 HTTP
HEAD
请求,这次是
base64
-编码
username:password
:
HEAD /myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml HTTP/1.1
Host: rpm.example.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
User-Agent: ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
Accept: */*
Connection: close
(4)
jfrog
最终以 HTTP
200
响应.
HTTP/1.1 200 OK
Date: Thu, 28 May 2020 08:20:04 GMT
Content-Type: application/xml
Content-Length: 1394
Connection: close
Server: Artifactory/7.4.3 70403900
X-Artifactory-Id: 2148103ba10eacbb:-16f1c4c1:172093a231a:-8000
X-Artifactory-Node-Id: artifactory-server
Last-Modified: Fri, 08 May 2020 10:25:19 GMT
Accept-Ranges: bytes
X-Artifactory-Filename: repomd.xml
Cache-Control: no-store
这些由 Artifactory 记录:
artifactory-request.log
:
2020-05-28T08:20:34.566Z [5f78297c2aeabaa8] [DENIED LOGIN] for client : username / 213.1.1.1.
2020-05-28T08:20:34.870Z [570978212a5318e3] [ACCEPTED DOWNLOAD] myapp-release-rpm-cache:stable/myapp/2019/3/repodata/repomd.xml for client : username / 213.1.1.1.
artifactory-access.log
:
2020-05-28T08:20:34.566Z|5f78297c2aeabaa8|213.2.2.2|non_authenticated_user|HEAD|/myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml|401|-1|0|8|ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
2020-05-28T08:20:34.721Z|8018b7cbc9c424e8|213.2.2.2|username|HEAD|/myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml|200|-1|1394|3|ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
2020-05-28T08:20:34.870Z|570978212a5318e3|213.2.2.2|username|GET|/myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml|200|-1|1394|2|ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
...
所以基本上,
zypper
带有
HEAD
请求,JFrog 说“您未通过身份验证”,
zypper
响应并尝试进行身份验证,最后 JFrog 对 zypper 进行身份验证。到目前为止是有道理的。
zypper refresh --repo myrepo
几分钟后发出命令,结果如下:
zypper
发送 HTTP
HEAD
与
base64
的请求-编码
username:
:
HEAD /myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml HTTP/1.1
Host: rpm.example.com
Authorization: Basic dXNlcm5hbWU6
User-Agent: ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
Accept: */*
Connection: close
(2)
jfrog
响应 HTTP
401 Unauthorized
与
WWW-Authenticate
标题:
HTTP/1.1 401 Unauthorized
Date: Thu, 28 May 2020 08:30:44 GMT
Content-Type: application/json;charset=ISO-8859-1
Connection: close
Server: Artifactory/7.4.3 70403900
X-Artifactory-Id: 2148103ba10eacbb:-16f1c4c1:172093a231a:-8000
X-Artifactory-Node-Id: artifactory-server
WWW-Authenticate: Basic realm="Artifactory Realm"
(3)
zypper
发送另一个 HTTP
HEAD
请求,这次是
base64
-编码
username:password
:
HEAD /myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml HTTP/1.1
Host: rpm.example.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
User-Agent: ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
Accept: */*
Connection: close
(4) 这一次,
jfrog
回复
403 Forbidden
而不是
200 OK
.
HTTP/1.1 403 Forbidden
Date: Thu, 28 May 2020 08:30:44 GMT
Content-Type: application/json;charset=ISO-8859-1
Connection: close
Server: Artifactory/7.4.3 70403900
X-Artifactory-Id: 2148103ba10eacbb:-16f1c4c1:172093a231a:-8000
X-Artifactory-Node-Id: artifactory-server
WWW-Authenticate: Basic realm="Artifactory Realm"
artifactory-request.log
:
2020-05-28T08:30:44.496Z [46c81a2450623166] [DENIED LOGIN] for client : username / 213.1.1.1.
2020-05-28T08:30:44.630Z [769ed41c652daa7a] [DENIED LOGIN] for client : username / 213.1.1.1.
artifactory-access.log
:
2020-05-28T08:30:44.496Z|46c81a2450623166|213.2.2.2|non_authenticated_user|HEAD|/myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml|401|-1|0|9|ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
2020-05-28T08:30:44.630Z|769ed41c652daa7a|213.2.2.2|non_authenticated_user|HEAD|/myapp-release-rpm/stable/myapp/2019/3/repodata/repomd.xml|403|-1|0|1|ZYpp 17.19.0 (curl 7.60.0) openSUSE-Leap-15.1-x86_64
Authorization
要求进行身份验证时的 header 值,但在第二种情况下,
JFrog
无法验证请求。
yum
客户端(centos 和 rhel)在
JFrog Artifactory
上没有这个确切的问题。 ,这很可能是因为 yum 总是在 HTTP header 中发送用户名和密码哈希,避免了
401 Unauthorized
重认证序列。
最佳答案
您是否尝试将 baseurl 设置为:
http://username:apikey@some.url/artifactory
关于http-headers - JFrog Artifactory 使用 403 forbidden 间歇性拒绝身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62064626/
我需要为我在 artifactory 中的一个 repo 协议(protocol)删除超过特定天数的 Artifactory 版本。我的意思是假设我的 artifactory url repo 是:-
我需要为我在 artifactory 中的一个 repo 协议(protocol)删除超过特定天数的 Artifactory 版本。我的意思是假设我的 artifactory url repo 是:-
我们使用的是 Artifactory 版本 4.12.2。如果我有十个本地存储库,并且我只想在五个存储库中保留最新的二十个 Artifactory ,而在其他五个存储库中则没有限制。需要建议我如何实现
我们想要两个 JFrog Artifactory 实例,一个供公司本地网络内部的用户使用(完全开放访问),另一个可以从外部使用(访问受限)。因此,我们希望第二个实例镜像第一个实例的部分(或全部)存储库
我在 Artifactory (OpenSource) 中有一些 Artifactory : 我可以使用 下载 Artifactory jfrog CLI : jfrog rt config --us
如何将特定 Artifactory 复制到另一个 Artifactory 实例? 据我所知,导出/导入功能仅适用于完整系统或完整的单个存储库复制。我也不想复制完整的 repo 协议(protocol)
我知道 artifactory 使用基于校验和的存储,并且只会存储一个 Artifactory 的一个副本,即使我以不同的名称上传多个相同的副本也是如此。 因为我有很多项目都使用匿名版本但可能是相同的
假设我有 Artifactory “mylibrary-5.2.jar”和“mylibrary-5.3.jar”,分别代表我们的项目为我们的其他项目之一创建和发布的库的 5.2 和 5.3 版本。 A
阅读本 API 指南。我的 Artifactory 版本是 4.12.2。 https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+
我在玩一个全新的OOS artifactory安装。我有一个 jcenter 的远程存储库.我正在寻找一种将远程 Artifactory 手动缓存到 jcenter-cach 的方法与 artifac
我有 Artifactory Jfrog 6.16.0 Pro。我安装了插件 artifactCleanup 并针对存储库运行它。它删除了大约 500GB。下一步,我从垃圾箱中删除文件,现在它为零。最
JFrog Artifactory 支持 NuGet 源。您将如何配置 Chocolatey 以指向 Artifactory 服务器而不是 Chocolatey.org? 最佳答案 创建一个指向 Ch
Maven Publishing的新手。我们的团队已经开始使用Artifactory,我正在尝试找出如何发布到Artifactory,但使用的是自定义 Artifact ID。这是我的build.gr
我正在使用 Jfrog artifactory OSS 版本 5。我可以看到我的快照存储库太大,我想从快照存储库中删除不需要的 Artifactory 。 我想删除过去 6 个月内未下载的所有 Art
我正在使用 Jfrog artifactory OSS 版本 5。我可以看到我的快照存储库太大,我想从快照存储库中删除不需要的 Artifactory 。 我想删除过去 6 个月内未下载的所有 Art
情况是这样的,我们在公司有一个共享文件夹,当我们放置一个应用程序的安装程序时(两个文件 .sh,一个用于 bin,另一个用于 conf),这是一个手动操作。 我们正在尝试让 Jenkins 自动执行此
我目前正尝试在 Artifactory 中查询与核心项目相关的特定 Artifactory 。所有 Artifactory 都将以项目标签为前缀。示例:“proj1-core”。我使用 Artifac
我已经设置了一个 Artifactory (4.1.2) 的实例,我用它来存储 java Artifactory 。我使用如下配置的 gradle 插件将 Artifactory 推送到实例 arti
我想永久链接到Artifactory中工件的最新快照版本。如果我们使用的是1.0-SNAPSHOT,我想要一个可下载最新的1.0-SNAPSHOT JAR的URL。通过在服务器上的http://hos
当我下载,解压缩并启动artifactory.sh时,看到以下错误 2020-02-26T21:32:50.496Z [jfac ] [ERROR] [c1b4de79a3f11666] [.j.a.
我是一名优秀的程序员,十分优秀!