【问题标题】:signjar & jar:sign vs Artifactory checksumsignjar & jar:sign 与 Artifactory 校验和
【发布时间】:2012-02-21 19:38:37
【问题描述】:

如果在构建过程中,我通过 Ant 的 signjar 任务对 jar 进行签名,那么它将被视为“签名 jar”。通过执行jar:sign 目标,可以在 Maven-land 中完成同样的事情。

诸如 Artifactory 之类的存储库管理器具有校验和的概念,您可以在其中因校验和错误而导致部署失败,您可以重新计算错误/缺失的校验和,并根据校验和状态采取各种其他操作。

我想知道通过 signjarjar:sign 等方法对 jar 的结果(“签名”)与 Artifactory 的校验和概念之间有什么关系。

“校验和”是否只是运行这些签名任务/目标所产生内容的通用术语?还是它们完全不同?

【问题讨论】:

    标签: java maven ant artifacts jar-signing


    【解决方案1】:

    校验和是文件内容的数字表示。签名是向文件添加签名的过程。

    由于签名过程中文件的大小和内容发生变化,同一个文件被签名和未签名的校验和会有所不同。

    使用校验和验证文件传输成功的过程对于 Artifactory 来说并不特殊。 上传是这样的:

    1. 客户端在上传文件之前计算校验和。
    2. 客户端沿文件上传校验和(通常在带有 .md5 或 sha1 扩展名的单独文本文件中,这是计算校验和的两种方式)。
    3. 上传服务器计算上传文件的校验和后。
    4. 服务器将其校验和与上传的校验和进行比较。如果它们匹配 - 全部为绿色。如果不是 - 这取决于您在问题中提到的设置(上传失败,或者仍然通过)。

    当您在签名后使用构建工具(Maven 或 Ivy)将 jar 部署到 Artifactory 时,计算出的校验和将是正确的(已签名 jar),因此一切都应该按预期工作。

    【讨论】:

      【解决方案2】:

      签名的 jar 保证其内容是由签名人创建的。虽然校验和只是检查文件是否完整。例如,有人可以修改文件并更改校验和以匹配新内容。

      【讨论】:

      • 谢谢!那么是否可以在签名/未签名的 jar 上运行校验和?如果是这样,您会在 jar 本身的 Ant 中执行此操作,还是会在 Ant 生成的 jar(或 zip)上使用外部校验和工具?另外,Artifactory 首先如何知道正确的校验和是什么?!?!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      相关资源
      最近更新 更多