|
|
|
|
Posté par
Patator68, le vendredi 30 novembre 2007 à 10:23:36Configuration: Windows 2000 Firefox 2.0.0.10 java 1.6
salut,
As-tu signé ton fichier jar ? En le signant, tu autoriseras ton application à lire dans tes fichiers locaux. Ce qui est interdit normalement à cause de la sandbox, mais tu n'as pas les même restrictions de sécurité avec un logiciel comme eclipse : keytool -genkey -alias toto jarsigner -signedjar jar_signe.jar jar_a_signer toto Ca devrait marcher après. Cdt Google is your friend |
Salut,
merci pour l'info, je vais tester. mais petite précision: lorsque tu écris jarsigner -signedjar jar_signe.jar jar_a_signer toto "jar_signe.jar" est la librairie externe que j'utilise mais "jar_a_signer" c'est quoi? Merci d'avance |
Bon j'ai testé
j'ai créé un jar signé et je l'ai mis dans Z:\appli\jar_signe.jar lorsque le lance le fichier htm, il me demande si j'accepte la signature numérique. je clique sur exécuter et là, même problème qu'avant : java.security.AccessControlException: access denied (java.io.FilePermission ..\Ressource\xxx.xml read) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkRead(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) ce que je ne comprends pas, c'est que lorsque j'utilise la jar (via un .bat), je n'est aucun problème. Mais c'est seulement lorsque j'accède au .jar avec l'applet que j'ai le probleme de droits :( |
Bonjour,
j'ai bien signé mon jar comme indiqué dans le tuto et j'ai bien une demande d'acceptation du certificat lorsque je lance ma page htm. Mais j'ai toujours la même erreur. Je me suis donc dit que je vais voir où est lancé l'application, juste pour voir j'ai ajouté String plop = System.getProperty("user.dir"); System.out.println("user.dir = "+plop); Mais là, l'erreur affichée est la suivante : java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPropertyAccess(Unknown Source) at java.lang.System.getProperty(Unknown Source) ... donc je comprends pas trop. Je les paramètres de restrictions sont trop élevés (je suis sur un ordi d'entrepise). Quelqu'un a-t-il une solution? je vais tenter d'exécuter l'applet chez moi même si je n'est pas la base de données, je devrait avoir le droit de lire le user.dir
|
Bon j'ai un peu avancé:
pour les fichiers, il faut donner le chemin complet : c:\dossier1\dossier2\ficherALire.txt au lieu de ..\fichierALire.txt sinon, après correction de ce problème, la nouvelle erreur est un problème de SocketPermission... donc je vais me résoudre à développer une page php vite fait... Tiens moi au courant si tu trouves la solution ;) |
Bonjour,
bon j'ai trouvé une solution à l'adresse suivante: http://www.developpez.net/forums/showthread.php?p=2515466#post2515466 il suffit de rajouter l'instruction: System.setSecurityManager(null); lors de l'initialisation de l'applet. Par contre, les threads créés à partir de l'applet ne sont pas concernés par ces droits (!!!). On peut contourner le problème comme indiqué dans le lien. Si certains n'aiment pas cette solution, je m'orientais vers le fichier applet.policy qui devait contenir: grant { permission java.security.AllPermission; }; Mais je ne sais pas si c'est possible de mettre ce fichier sur le serveur et faire en sorte que cela soit transparent pour l'utilisateur. Enfin bref, je donne juste une autre piste sans trop savoir où elle mène. Bon courage! |
Merci!!!
ça fonctionne :) Bon je pense que c'est pas la solution la plus optimale :) Mais bon. Merci encore |