Добрый день.
Ранее мы получили апплет с добавленной функцией подписи файлов и исправлением выбора файлов в Mac OS.
При использовании данной версии апплета возникла странная ситуация.
При первой загрузке апплет загружается и нормально отрабатывает.
При втором обращении что-то ломается и апплет не загружается.
Если переименовать файл, то один раз он опять нормально отрабатывает.
В настройках Java включил дополнительное логирование и в результате получил следующую ошибку.
java.lang.ExceptionInInitializerError
at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:318)
at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:263)
at javax.crypto.JceSecurity.access$000(JceSecurity.java:48)
at javax.crypto.JceSecurity$1.run(JceSecurity.java:81)
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:78)
at javax.crypto.JceSecurityManager.<clinit>(JceSecurityManager.java:65)
at javax.crypto.Cipher.getConfiguredPermission(Cipher.java:2587)
at javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2611)
at sun.security.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:548)
at sun.security.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:527)
at sun.security.ssl.CipherSuite.isAvailable(CipherSuite.java:194)
at sun.security.ssl.SSLContextImpl.getApplicableCipherSuiteList(SSLContextImpl.java:346)
at sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList(SSLContextImpl.java:304)
at sun.security.ssl.SSLSocketImpl.init(SSLSocketImpl.java:614)
at sun.security.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:525)
at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:72)
at sun.net.www.protocol.https.HttpsClient.createSocket(HttpsClient.java:409)
at sun.net.NetworkClient.doConnect(NetworkClient.java:162)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:371)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1104)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:988)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:986)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java:713)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:985)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512)
at sun.net.www.protocol.http.HttpURLConnection.access$200(HttpURLConnection.java:90)
at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1432)
at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1430)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java:713)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1429)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at sun.plugin2.applet.Applet2ClassLoader.resourceExists(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findResources(Unknown Source)
at java.lang.ClassLoader.getResources(ClassLoader.java:1139)
at org.apache.commons.logging.d.run(SourceFile)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.commons.logging.LogFactory.a(SourceFile)
at org.apache.commons.logging.LogFactory.getFactory(SourceFile)
at org.apache.commons.logging.LogFactory.getLog(SourceFile)
at org.apache.xml.security.Init.<clinit>(SourceFile)
at kz.gov.pki.knca.applet.utils.XmlUtil.loadXMLSecurity(XmlUtil.java:33)
at kz.gov.pki.knca.applet.MainApplet.init(MainApplet.java:90)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.SecurityException: Framework jar verification can not be initialized
at javax.crypto.JarVerifier.<clinit>(JarVerifier.java:189)
... 54 more
Caused by: java.lang.RuntimeException: algorithm identifier 1.2.840.10040.4.1 in key not recognised
at kz.gov.pki.kalkan.jce.provider.JDKKeyFactory.createPublicKeyFromPublicKeyInfo(JDKKeyFactory.java:221)
at kz.gov.pki.kalkan.jce.provider.X509CertificateObject.getPublicKey(X509CertificateObject.java:524)
at javax.crypto.JarVerifier.testSignatures(JarVerifier.java:720)
at javax.crypto.JarVerifier.access$400(JarVerifier.java:34)
at javax.crypto.JarVerifier$1.run(JarVerifier.java:183)
at javax.crypto.JarVerifier$1.run(JarVerifier.java:149)
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JarVerifier.<clinit>(JarVerifier.java:148)
... 54 more
Логи java консоли при успешной и неуспешной загрузки апплета приложил.
Со старым апплетом данная проблема не воспроизводиться.