Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1352 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Sécurité et applet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sécurité et applet

n°1392672
paolo16
Posté le 22-06-2006 à 11:15:03  profilanswer
 

Bonjour voila j'ai un leger de problème de sécurité
Je veux me connecter à mon serveur RMI sur un port que je spécifie, 1099 par exemple avec :
Registry registry = LocateRegistry.getRegistry(port);
 
mais il me génére l'exception suivante : java .security.AccessContrilException:accss denied (java.net.SocketPermission 1099:1099 connect,resolve)
 
J'ai donc mis dans mon fichier java.policy.applet la ligne suivante :
permission java.net.SocketPermission "*:1024-65535","connect,accept,resolve";
 
Mais rien y fait j'ai toujours l'exception et je ne vois pas comment passer outres cela ... :??:  
 
Merci de votre aide
 

mood
Publicité
Posté le 22-06-2006 à 11:15:03  profilanswer
 

n°1392690
zapan666
Tout est relatif
Posté le 22-06-2006 à 11:36:11  profilanswer
 

http://www.ccs.neu.edu/home/kenb/com3337/rmi_tut.html
 
Paragraphe Security
 

Citation :


The message above would occur when an RMI server or client was not allowed to connect to the RMI registry running on the same machine as the server or client.


 
Je pense que c'est ce que tu cherche [:petrus75]
 
(le document a l'air tout de meme assez vieux = voir sur avec les nouveaux SDK il n'y a pas une solution indique)


Message édité par zapan666 le 22-06-2006 à 11:37:53

---------------
my flick r - Just Tab it !
n°1392834
paolo16
Posté le 22-06-2006 à 14:41:32  profilanswer
 

Ok merci
Mais j'ai regardé avec les nouveaux SDK et disons qu'ils expliquent que je dois dans mon fichierjava.policy.applet mettre une nouvelle ligne avec grant ( ce que j'ai fait plus haut) mais ils n'expliquent pas d'autres choses, donc j'ai toujours ce problème

n°1392844
zapan666
Tout est relatif
Posté le 22-06-2006 à 14:53:16  profilanswer
 

:o et le liens il dit quoi le liens

Citation :


However, many Java installations have instituted security policies that are more restrictive than the default. There are good reasons for instituting such policies, and one should not override them carelessly. In particular, if your Java virtual machine already has a security manager and if this security manager does not allow the setSecurityManager method to be invoked, then you will not be able to change security policies other than as allowed by the existing security manager. This is the case for applets running in a browser. In order to protect the client from potentially dangerous applets, the security manager of applets does not allow many operations, including reading and writing local files, as well as changing the security manager.


 

Citation :

For example, if you find that your "Hello, World!" program refuses to connect to the registry, then you should override the checkConnect methods. There are two checkConnect methods


 
J'ai essaye de lire le reste bon courage [:pingouino]
 
 
TIPS : Il y a un bureau dans le batiment ou tu es ou il y a un gars qui s'y connais en RMI / Security / Java


---------------
my flick r - Just Tab it !
n°1392862
leonhard
Posté le 22-06-2006 à 15:19:36  profilanswer
 

tu peux nous montrer le fichier java.applet.policy en entier ? Il faudrait vérifier dans ton applet si tu as bien les permissions indiquées dans le policy file. Pour une applic, il suffirait de la démarrer avec -Djava.security.debug=all, mais pour une applet c'est plus compliqué je penses
 

n°1392894
paolo16
Posté le 22-06-2006 à 15:50:51  profilanswer
 

voici mon fichier java.applet.policy:
grant {
  permission java.security.AllPermission;
  permission java.net.SocketPermission "*:1024-65535","connect,accept,resolve";
};
lorsque je lance mon serveur RMi dans ma ligne de commande j'ai cela :
-Djava.security.policy=bin/java.policy.applet
 
Merci pour votre aide

n°1392941
leonhard
Posté le 22-06-2006 à 16:55:17  profilanswer
 

euh, attends, le message d'erreur que tu nous as montré, c'est le serveur ou le client qui le génère ? parce que normalement, sans permission particulière, une applet ne peut se connecter que sur le serveur qui l'a envoyée et seulement dans son codebase si je me souvient bien. Donc c'est aussi le client qui a besoin de permissions. De plus, dès que dans un bloc grant tu as un AllPermission, le reste est purement décoratif


Message édité par leonhard le 22-06-2006 à 16:56:32
n°1392959
paolo16
Posté le 22-06-2006 à 17:08:19  profilanswer
 

Mon message d'erreur c'est mon client (ie mon applet ici) qui me le genere

n°1392971
leonhard
Posté le 22-06-2006 à 17:16:03  profilanswer
 

donc c'est bien ce que je disais, il faut lancer l'applet avec le policy file ! Mais je ne sais pas comment on fait cela depuis un browser. Il y a qq temps, certains browser prenaient le contenu d'un fichier .java.security dans le home de l'utilisateur, mais je crois que depuis les browser ont fermé ce trou de sécurité...

n°1393662
paolo16
Posté le 23-06-2006 à 14:53:43  profilanswer
 

Ah pitain cela m'arrange vraiment pas ...:s

mood
Publicité
Posté le 23-06-2006 à 14:53:43  profilanswer
 

n°1393707
paolo16
Posté le 23-06-2006 à 15:19:23  profilanswer
 

J'ai demandé à un de mes enseignants, il me parle modifier la
politique de securite du navigateur. Ok mais le problème c'est que l'application est destinée à tourner sur d'autre machine que la mienne, donc ca va poser un problème.

n°1393710
paolo16
Posté le 23-06-2006 à 15:25:26  profilanswer
 

Bon apparament une solution moins chiante, serait de signé l'applet, je vais le faire et voir le résultat

n°1394785
paolo16
Posté le 26-06-2006 à 10:06:49  profilanswer
 

Bon la signature permet d'eviter l'exception, mais par contre mon applet tourne dans le vide. Dans mon au moment ou je fais un registry.lookup("Nom de mon remote objeect" ), cela tourne dans le vide comme si il ne trouvait pas mon remote object.
Si vous avez une solution, je suis preneur, car je ne vois vraiment pas comment faire...

n°1394793
souk
Tourist
Posté le 26-06-2006 à 10:24:09  profilanswer
 

tu précises pas d'url pour le lookup ? juste le nom de l'objet remote ?

n°1394794
paolo16
Posté le 26-06-2006 à 10:28:14  profilanswer
 

ouais juste le nom de l'objet remote que je rédupere dans les param de mon applet:
registry.lookup(getParameter("Log" ));


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Sécurité et applet

 

Sujets relatifs
serialize() et sécuritéapplet java, ressource CPU, normal ?
[avis] web services + ajax ou web services + applet ???[java] PB lancement d'un Applet
Applet java, archive jar -> probleme Worng name :([JAVA] Pb de connexion DB Oracle à partir d'une applet [Résolu]
droit d ecriture repertoire et securiteVariables HTML avec applet JAVA
getSystemClipboard, presse papier, applet et sécurité[JAVA] Applet et Securite
Plus de sujets relatifs à : Sécurité et applet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR