NoSuchAlgorithmException when running JNLP with Java 7

After switching to Java 7 when starting remote jnlp, I see the following exception in the Java console:

java.security.KeyStoreException: WIExplorerMy not found at java.security.KeyStore.getInstance(Unknown Source) at com.sun.deploy.services.WPlatformService$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.services.WPlatformService.getBrowserClientAuthKeyStore(Unknown Source) at sun.plugin2.applet.context.InitialJNLPExecutionContext.getBrowserClientAuthKeyStore(Unknown Source) at sun.plugin2.main.client.DisconnectedExecutionContext.getBrowserClientAuthKeyStore(Unknown Source) at sun.plugin2.applet.Applet2BrowserService.getBrowserClientAuthKeyStore(Unknown Source) at com.sun.deploy.security.X509DeployKeyManager.<init>(Unknown Source) at com.sun.deploy.net.protocol.https.Handler$Initializer$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.net.protocol.https.Handler$Initializer.<clinit>(Unknown Source) at com.sun.deploy.net.protocol.https.Handler.openConnection(Unknown Source) at java.net.URL.openConnection(Unknown Source) at com.sun.deploy.net.BasicHttpRequest.createUrlConnection(Unknown Source) at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source) at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(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$Sync.innerRun(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) Caused by: java.security.NoSuchAlgorithmException: WIExplorerMy KeyStore not available at sun.security.jca.GetInstance.getInstance(Unknown Source) at java.security.Security.getImpl(Unknown Source) ... 26 more 

In addition, an error screen containing the message β€œError. Click for more details” appears for about 2 seconds and then disappears.

Other then everything seems to be functioning properly.

With Java 6, everything works as expected.

Ideas how to fix it?

+4
source share
4 answers

I think some of the latest Java 7 updates have outdated some encryption schemes, so that would be a perfectly normal exception to receive if you would use one of them when using Java 6 .

See the list of enhancements and changes for Java 7 :

Weak encryption blocks are outdated

In RFC 4346, RFC 5246, and RFC 5469, some cipher suites were outdated and should not be used. These legacy suites are disabled by default in SunJSSE. For more information, see Cipher Lists in the SunJSSE Provider Documentation.

As said, this explains the NoSuchAlgorithmException, but the error message seems to be saying something about the missing keystore, so it may be unrelated, and we need to provide you with SSCCE or something close enough to one.

+1
source

I solved this problem by adding

 security.provider.11=com.sun.deploy.security.MSCryptoProvider 

to C:\Program Files\Java\jre1.8.0_31\lib\security\java.security

Although the error was not fatal for me, these are just javaws trying to read the local browser key store before returning to the java stores that the control panel manages. These files are located in C:\Users\USERID\AppData\LocalLow\Sun\Java\Deployment\security

Interestingly, there is a security explorer in the java.security file that is pre-connected, and it

 security.provider.10=sun.security.mscapi.SunMSCAPI 

This provider can also read the browser keystore, but the store type is windows-my, not WIExplorerMy

+1
source

Tarlog, do you have any permission? I have the same problem, I suspect that the first problem with a KeyStoreException exception occurs only when trying to securely connect. And this ominous "Error. Click for details" problem occurs on any applet downloaded via jnlp.

I have not found permission yet.

Edit: For KeyStoreException, I realized that the problem that occurred due to apache certificate files somehow disappeared. I created ceritificate files and restarted apache. An exception no longer occurs.

Another problem with the Error window still exists.

0
source

Regarding Error Click for details issue - I solved this by adding a class to the source that implements javax.jnlp.DownloadServiceListener (maybe just a dummy class) and then specifying that class in your jnlp file (applet-desc/@progress-class="YourClass")

0
source

Source: https://habr.com/ru/post/1480484/


All Articles