【发布时间】:2013-12-12 12:16:17
【问题描述】:
从 java7u21 升级到 java7u45 后,做了很多安全相关的改动。
所以首先有与清单文件中缺少属性有关的警告。按照之前提供的 solution 修复它。
Permissions: all-permissions
Codebase: *
Application-Name: My Name
将属性添加到 MANIFEST 文件并重新签名。
现在,当我使用我的 jnlp 文件启动应用程序时,它会在这个特定的 jar 上给出以下错误
Error: Unable to load resource
http://<path>/org.eclipse.core.filesystem.win32.x86_<version>.jar
java.io.IOException: Invalid signature file digest for Manifest main attributes
at com.sun.deploy.cache.CacheEntry$10.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.cache.CacheEntry.writeFileToDisk(Unknown Source)
at com.sun.deploy.cache.CacheEntry.writeFileToDisk(Unknown Source)
at com.sun.deploy.cache.Cache.downloadResourceToTempFile(Unknown Source)
at com.sun.deploy.cache.Cache.downloadResourceToCache(Unknown Source)
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
验证此 jar 的清单文件是否缺少属性并再次对其进行签名。但同样的错误。
任何指针?
【问题讨论】:
-
这个.jar 是库文件还是主应用程序.jar?
-
很抱歉延迟了这么多的响应。这个 .jar 是 eclipse 库文件。
-
@ryvantage - 我想通了。这个
org.eclipse*.jar和其他一些 Eclipse jar 文件在 META-INF/ 目录中有自己的签名文件 (ECLIPSEF.SF)。由于这个额外的 SF 文件仍然具有先前 MANIFEST 主要属性的 SHA-DIGEST(现已更改),因此插件无法加载。我从所有插件中删除了这些和其他签名文件,并用我自己的证书重新签名。
标签: java java-7 java-web-start jnlp