Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

cannot verify signature block SecurityException during version update

843802Mar 22 2010 — edited Mar 23 2010
Hi all,

I have my application installed on few systems using webstart. All the jars(including third party are signed by my certificate).

After that, during an update, I signed all the jars using a new certificate.
I have placed new jars in the cache server(Tomcat 5.0) and started it.

Now I made necessary version changes in the JNLP file(while the server is running).

When I started application on client machines, it tried to bring get the jars of updated version.
During that process, following exception is shown while downloading a thirdparty jar:
java.lang.SecurityException: cannot verify signature block file META-INF/ABC
	at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
	at sun.security.util.SignatureFileVerifier.process(Unknown Source)
	at java.util.jar.JarVerifier.processEntry(Unknown Source)
	at java.util.jar.JarVerifier.update(Unknown Source)
	at java.util.jar.JarFile.initializeVerifier(Unknown Source)
	at java.util.jar.JarFile.getInputStream(Unknown Source)
	at com.sun.javaws.security.SigningInfo.checkSigning(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)





JNLPException[category: Download Error : Exception: java.lang.SecurityException: cannot verify signature block file META-INF/ABC : LaunchDesc: null ]
	at com.sun.javaws.security.SigningInfo.checkSigning(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
I restarted the cache server (Tomcat).
Now the download went fine. Otherthan restarting the server, no other changes were made.

What could be the possible reason? Updating the JNLP file while server is running is a problem?

I tried this to recreate this scenario several times.

On certain occasions, I came across above exception along with another exception:
com.sun.deploy.net.JARSigningException: Could not verify signing in resource: (http://abc.xyz.com:5967/XXX/JARS/ThirdPartyJars/abc.jar, 8.0)
at com.sun.deploy.cache.CacheEntry.writeManifest(Unknown Source)
at com.sun.deploy.cache.CacheEntry.access$1800(Unknown Source)
at com.sun.deploy.cache.CacheEntry$9.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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.getCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
at com.sun.javaws.Launcher.downloadResources(Unknown Source)
at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.launch(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)
Everytime, after restarting the cache server, update download went fine.

Does anyone come across such thing?

Please Help me out.

Thanks in Advance..
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 19 2010
Added on Mar 22 2010
2 comments
1,620 views