Artifactory JAR 签名虚拟仓库不缓存本地快照仓库
Artifactory JAR signing virtual repo not caching local snapshot repo
我有一个本地 Artifactory 服务器,其中定义了一堆本地存储库。我已经设置了一个虚拟存储库并将其配置为对通过它检索到的任何 JAR 文件进行签名。
libs-signed
虚拟存储库已连接到 libs-staging-local
和 libs-snapshot-local
,因此您可以从这两个存储库中获取任何 jar,并让它们由我们的证书签名。
如果我通过签名虚拟仓库从暂存仓库获取 JAR,第一次我必须等到签名过程完成,但由于虚拟仓库缓存,此后对同一工件的任何请求都很快.
但是,如果我通过签名虚拟存储库从快照存储库中获取 JAR,我总是会在 JAR 被签名时等待时间(并且我已验证 jarsigner 进程已在服务器上启动每次)。因此,不会缓存源自快照存储库的已签名工件。我已确保在两次提取之间没有添加任何新的快照版本,因此原始(未签名)文件完全相同。
有人知道这是怎么回事吗?如何让虚拟存储库缓存已签名的快照 JAR?
缓存行为取决于非唯一快照的解析方式。
如果快照是通过请求具体的时间戳工件来解析的,那么签名的 .jar 将被缓存,例如:
http://localhost:8081/artifactory/libs-snapshot/org/jfrog/test/multi1/3.5-SNAPSHOT/multi1-3.5-20170105.183200-4.jar
但是,如果通过请求解析快照 - 签名的 .jar 将不会被缓存,例如:
http://localhost:8081/artifactory/libs-snapshot/org/jfrog/test/multi1/3.5-SNAPSHOT/multi1-3.5-SNAPSHOT.jar
原因是针对此类请求的 returned 工件可能会更改,并且通过缓存它,Artifactory 可能 return 一个错误的工件。
我有一个本地 Artifactory 服务器,其中定义了一堆本地存储库。我已经设置了一个虚拟存储库并将其配置为对通过它检索到的任何 JAR 文件进行签名。
libs-signed
虚拟存储库已连接到 libs-staging-local
和 libs-snapshot-local
,因此您可以从这两个存储库中获取任何 jar,并让它们由我们的证书签名。
如果我通过签名虚拟仓库从暂存仓库获取 JAR,第一次我必须等到签名过程完成,但由于虚拟仓库缓存,此后对同一工件的任何请求都很快.
但是,如果我通过签名虚拟存储库从快照存储库中获取 JAR,我总是会在 JAR 被签名时等待时间(并且我已验证 jarsigner 进程已在服务器上启动每次)。因此,不会缓存源自快照存储库的已签名工件。我已确保在两次提取之间没有添加任何新的快照版本,因此原始(未签名)文件完全相同。
有人知道这是怎么回事吗?如何让虚拟存储库缓存已签名的快照 JAR?
缓存行为取决于非唯一快照的解析方式。
如果快照是通过请求具体的时间戳工件来解析的,那么签名的 .jar 将被缓存,例如:
http://localhost:8081/artifactory/libs-snapshot/org/jfrog/test/multi1/3.5-SNAPSHOT/multi1-3.5-20170105.183200-4.jar
但是,如果通过请求解析快照 - 签名的 .jar 将不会被缓存,例如:
http://localhost:8081/artifactory/libs-snapshot/org/jfrog/test/multi1/3.5-SNAPSHOT/multi1-3.5-SNAPSHOT.jar
原因是针对此类请求的 returned 工件可能会更改,并且通过缓存它,Artifactory 可能 return 一个错误的工件。