2013-10-16 17 views
6

Fino al mattino tutto funziona perfettamente nella mia applet. Ho preso l'aggiornamento di Java e tutto si è fermato. Ho a che fare con il certificato digitale usando l'applet. Ecco la mia traccia dello stack. Ho seguito un articolo di oracolo ma non ha funzionato.java.security.AccessControlException: accesso negato ("java.security.SecurityPermission" "authProvider.SunMSCAPI")

https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45 http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#trusted_library http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html

Java Plug-in 10.45.2.18 
Using JRE version 1.7.0_45-b18 Java HotSpot(TM) Client VM 
User home directory = C:\Users\vicky.thakor 

java.security.AccessControlException: access denied ("java.security.SecurityPermission" "authProvider.SunMSCAPI") 
    at java.security.AccessControlContext.checkPermission(Unknown Source) 
    at java.security.AccessController.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPermission(Unknown Source) 
    at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source) 
    at sun.security.mscapi.KeyStore.engineLoad(KeyStore.java:755) 
    at sun.security.mscapi.KeyStore$MY.engineLoad(KeyStore.java:62) 
    at java.security.KeyStore.load(Unknown Source) 
    at SecurityApplet.initializeBrowserKeyStore(SecurityApplet.java:162) 
    at SecurityApplet.isCertificateInstalled(SecurityApplet.java:268) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at sun.plugin.javascript.Trampoline.invoke(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

.java.policy lima Sto creando in public void init() metodo applet. È prima di accedere a qualsiasi cosa nell'applet.

grant 
{ 
permission java.security.AllPermission; 
permission java.io.FilePermission "<<ALL FILES>>", "read"; 
permission java.io.FilePermission "<<ALL FILES>>", "write"; 
permission java.util.PropertyPermission "*", "read, write"; 
permission java.util.PropertyPermission "user.home", "read"; 
permission java.util.PropertyPermission "user.dir", "read"; 
permission java.lang.RuntimePermission "modifyThread"; 
permission java.lang.RuntimePermission "*"; 
}; 

aggiornamento: 18 Nov 2013

non il suo lavoro, anche se si utilizza il codice di firma del certificato

enter image description here

+0

Ho anche seguito le discussioni StackOverflow ma niente funziona ... –

+0

ho firmato il mio certificato con '.pfx' file e verificato Ma non funziona ... –

+0

@AndrewThompson Ho firmato la mia applet con il certificato di firma del codice rilasciato da Thawte ma ancora non funziona. Controlla la domanda di aggiornamento. –

risposta

1

non posso commentare ma così sto mettendo questo come una risposta, invece .

  1. Credo che la creazione del file .java.policy eseguire l'applet sarà troppo tardi - il plugin avrà già avviato e leggere i file dei criteri prima di eseguire qualsiasi codice.

  2. Si potrebbe firmare l'applet e utilizzare un file JNLP per assegnare autorizzazioni nel elemento di sicurezza

+0

Ho firmato l'applet e ho impostato l'attributo di autorizzazione nel file 'MANIFEST.MF' ma non funzionante. –