Je travaille sur un projet d'intelligence artificielle qui est un jeu logique et vise deux utilisateur qui se connecte au serveur sur le réseau qui agit comme administrateur, puis commence à jouer un par un.
afin de créer des connexions, J'ai un code de serveur qui vient d'écouter sur localhost: 8000 et d'attribuer des valeurs d'équipe aux clients tels qu'ils arrivent. Après la connexion, les clients font leur déménagement sous le contrôle de l'administrateur. P>
La question est que lorsque j'essaie de mettre mon code pour travailler dans le navigateur, il échoue avec l'erreur suivante: P>
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8000 connect,resolve)
5 Réponses :
Placez le fichier de stratégie où le JRE est. P>
Par exemple, mon fichier de stratégie est situé à C: \ Program Files \ Java \ jre1.6.0_01 \ lib \ Security p>
Par défaut, je pense qu'il recherche un fichier nommé .java.policy dans votre annuaire de domicile p>
Vous pouvez vérifier le fichier /lib/security/java.security pour voir où il ressemble. Vérifiez les clés nommées stratégie.L.n p>
Renommer mon propre fichier de stratégie créé à .java.policy après avoir vérifié /lib/security/java.security afin de savoir où Java recherche le fichier de stratégie, cela a fonctionné. Merci toutes les1 pour les astuces.
Si votre problème est résolu, veuillez cliquer sur la case à côté du commentaire (à gauche) qui vous a aidé.
Quel est l'équivalent Windows de ce chemin /lib/security/java.security code>?
Recherchez dans le répertoire où le JRE est installé, généralement dans les fichiers de programme
Je suggère fortement de respecter la même politique d'origine. Les implications de sécurité ne sont pas nécessairement évidentes au mieux de fois. En outre, une applet avec des autorisations standard a une meilleure convivialité et devrait être plus facile à maintenir. P>
Si vous accordez une autorisation à un pot spécifique (codeBase), cela ne fonctionne que si l'ensemble de la pile d'exécution du début du thread à l'invocation de la méthode est dans ce domaine de codeBase / Protection. P>
Si votre méthode est de l'alibration et que vous êtes sûr que vous accédez à l'opération en toute sécurité, vous pouvez utiliser un bloc privilégié, ce qui permet essentiellement que la partie de la pile appelant votre bloc n'est pas prise en compte dans le calcul d'accès. P >
bloc privilégié, comme décrit ici: p>
http://docs.oracle.com/ Javase / 6 / Documents / Technotes / Guides / Sécurité / Dopriviled.html P>
Salutations Bernd p>
Vous pouvez définir l'emplacement du fichier de stratégie de sécurité à l'aide de cette option de ligne de commande avec la commande ou vous pouvez même définir cette propice à l'aide de la procédure java code>. p>
system.setproperty () code>. p> p>
Comment est-ce applicable à une applet? En outre, je doute que définir la propriété du système après que le JVM ait déjà commencé est efficace.
Lorsque j'essaie d'exécuter mon code client après avoir commencé le serveur de la console comme suit, je suis en mesure de faire reconnaître mon propre fichier de stratégie qui réside dans mon annuaire de domestique: AppetViewer -J-djava.security.policy = mypolicy.policy File: / //home/xxx/netbeansprojects/project/src/index.html Mais quand j'essaie de courir de l'IDE, il échoue: s
La signature du (s) pot d'applet peut être un peu plus facile à gérer. Vous permet d'économiser d'installer un fichier de stratégie sur chaque case que vous souhaitez exécuter.