2010-03-22 4 views
1

J'ai une applet qui lance cette exception en essayant de communiquer avec le serveur (fonctionnant sur localhost). Ce problème est limité aux applets seulement - un client POJO est capable de communiquer avec le même serveur sans problème.Java: Quels sont les différents paramètres de sécurité disponibles pour les applets?

Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: access denied (java.net 
.SocketPermission 127.0.0.1:9999 connect,resolve) 
     at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 

Mon contenu du fichier applet.policy est:

grant { 
permission java.security.AllPermission; 
}; 

Ma question est quels sont les autres endroits où je dois modifier mes paramètres de sécurité d'accorder une Applet plus de paramètres de sécurité?

Merci.


EDIT: Une enquête plus approfondie m'a conduit à constater que ce problème ne se produit que sur certaines machines - mais pas d'autres. Il peut donc s'agir d'un paramètre de niveau machine (global) à la place d'un paramètre spécifique à l'application tel que celui du fichier applet.policy.


EDIT: Another SO question: Socket connection to originating server of an unsigned Java applet
Cela semble décrire exactement le même problème, et Tom Hawtin - tackline 's answer fournit la raison pour laquelle (un correctif de sécurité publié qui interdit les applets de se connecter à localhost). En gardant cela à l'esprit, comment puis-je accorder à l'applet les paramètres de sécurité qui peuvent effectivement fonctionner sur ma machine. Aussi pourquoi fonctionne-t-il tel quel sur d'autres machines mais pas sur les miennes?

+0

Essayez-vous localhost, ou 127.0.0.1?Je crois que j'ai utilisé localhost dans un de mes projets précédents, et cela a fonctionné correctement. –

+0

@tim_yates Yup, j'utilise "localhost", qui se résout en '127.0.0.1' en interne. Mais "127.0.0.1" n'apparaît pas dans mon code si c'est ce que vous voulez dire. – bguiz

+0

Avez-vous essayé de signer votre fichier JAR applet et voir ce qui se passe? –

Répondre

1

En voyant ceci: http://sunsolve.sun.com/search/document.do?assetkey=1-66-246387-1, il est clair que les Applets s'exécutent depuis localhost (sans être déployé sur un serveur web) ne peuvent pas accéder à localhost.

Il n'y a pas de solution à ce problème comme indiqué

4. Solution

Il n'y a pas de solution à ce problème. Veuillez consulter la section Résolution ci-dessous.

Ma suggestion est la suivante:

Il stipule:

Les utilisateurs qui vérifient votre signature Accordez à votre logiciel JAR le privilège de sécurité s qu'il n'a pas habituellement.

  • Exécution de votre applet à partir d'un serveur Web (comme Tomcat) et l'accès localement via votre navigateur.
Questions connexes