0

我正在尝试使用 solaris 上的 signtool 签署 3rd 方 jar。jar 已经有一个 manifest.mf 文件,但是 signtool 在 META-INF/ 目录中创建一个新的 MANIFEST.MF 文件并使用它来对 jar 进行签名。如果我尝试验证签名的 jar,它会失败,因为清单文件有两个不同的版本。如果我将当前 manifest.mf 文件中的内容复制到 MANIFESET.MF,signtool 会覆盖数据。

无论如何要指定用于签署 jar 的文件(例如 manifest.mf over MANIFEST.MF)?或者有没有办法告诉 signtool 在新的 MANIFEST.MF 中包含什么?

这是一个紧迫的问题,因为 Java 的下一次更新需要对 jars 进行签名以及包含 applet 的权限标记。

4

1 回答 1

0

只涉足我必须维护的一个 Applet,而不是我自己的专家,我发现关于这个主题的信息很少。我发现的只是signtool参数“-m”(元文件)的神秘文档。从https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Tools/signtool,我猜“+ 如果你想指定全局元数据(即关于 JAR 归档本身或所有档案中的条目)”可能是对 META-INF/MANIFEST.MF 的神秘引用——而且似乎是。

将 anthill 与 build.xml 一起使用,并且不知道更好的约定,我创建了一个“src\antBuild\signtool-extras.mf”并在我的 signtool 调用中使用了“-m {basedir}\src\antBuild\signtool-extras.mf” . 我在“signtool-extras.mf”中以“+”开头的内容被扩充到 signtool 生成的 MANIFEST.MF 中。

就我而言,我添加了两行“+ Permissions: all-permissions”和一个标识为“+ Application-Name: Cris Mooney FTP Applet”。这些出现在生成的 jar 文件的 META-INF/MANIFEST.MF 中,这满足了当前的 Java 1.7.0_55 引擎。此外,与我在其他地方读到的相反,Java 目前并没有抱怨没有“代码库”,我对此知之甚少,但选择忽略,因为我预计我的工具会在 QA 中抱怨,这已经足够了一个无证的痛苦。

希望这对某人有所帮助,我希望在相对黑暗的情况下听到对我的猜测的澄清和更正。

注意 - 我的解决方案是解决这两个 Java 1.7.0_55 投诉:

缺少以下权限清单属性:URL/FTPApplet.jar

缺少以下应用程序名称清单属性:URL/FTPapplet.jar

于 2014-06-06T15:32:09.213 回答