2016-01-16 1 views
1

J'ai créé une applet Java pour la signature électronique. L'applet fonctionne normalement et fonctionne parfaitement pendant que je cours sur ide (intelliJ). Mais quand j'ai déployé le projet dans le fichier .jar et essayé de fonctionner sur le navigateur (firefox) j'ai eu une erreur en disant que .jar n'est pas approuvé. Puis j'ai fait quelques recherches et signé mon applet avec jarsigner. Je follewed ces étapes:L'accès Java Applet signé a été refusé. Java.io.FilePermission read


  • keytool -genkey -keyalg rsa -alias MyCert

  • keytool -certreq -alias MyCert

  • jarsigner C: \ TestApplet.jar MyCert

a également essayé des commandes sur le site Web d'Oracle. link here


Après la signature de mon erreur applet disparu et je pouvais courir mon applet. Mais quand je essaye de signer un dossier j'ai eu une erreur indiquant que l'applet n'a pas permis d'accéder au dossier de magasin de cert. L'erreur est:

java.security.AccessControlException: Accès refusé ("java.io.FilePermission" "C: \ Users \ ChooseClick.sertifikadeposu" "lire")

+0

Correct. Après la découverte de nombreuses failles de sécurité, les applets (même les applets signés) ne sont pas autorisés à accéder au dossier du magasin de certificats. –

+0

J'ai donc quelque chose à faire. Je peux peut-être installer la version Java inférieure? :( –

+0

Ne pas utiliser les applets Vous pouvez installer une version inférieure de Firefox, mais il est vulnérable à exploiter –

Répondre

0

J'ai trouvé la solution. Pour pouvoir accéder à des fichiers ou toute autre action restreinte à Java, vous devez utiliser des blocs prilivaged:

AccessController.doPrivileged(new PrivilegedAction() { 
    public Object run() { 
     //actions that need permission goes here 

     return null; 
    } 
    }); 

vous pouvez utiliser ce bloc dans une fonction.