什么"验证" java.util.jar.JarFile的参数是什么意思?

时间:2015-06-21 14:07:55

标签: java jar jar-signing

java.util.jar.JarFile的构造函数采用verify参数,其唯一文档似乎是the JavaDoc中的这一个短语:

  

verify - 是否验证jar文件是否已签名。

但是,这显然不是很精确。 JarFile确实需要的验证过程是什么?它是否仅验证Jar文件未被篡改,或者是否也以某种未指定的方式验证签名者证书是否可信?如果验证失败,或签名文件格式错误,会发生什么?验证是急切还是懒惰,& c& c?

我觉得通常很奇怪这样一个看起来与核心Java安全性密切相关的程序记录得很糟糕,所以我担心这可能会被视为内部"我真的不应该使用的API。是这种情况,还是我可能只是错过了某处的外部文件,还是只是一些奇怪的疏忽?

1 个答案:

答案 0 :(得分:2)

可能值得查看最新文档,而不是 2004 的文档。 : - )

up-to-date documentation中,它说:

  

如果在打开已签名的jar文件时打开了verify标志,则会根据嵌入在文件中的签名来验证文件的内容。请注意,验证过程不包括验证签名者的证书。调用者应检查JarEntry.getCodeSigners()的返回值,以进一步确定签名是否可信任。