IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

[Applet] Accès refusé malgré signature


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 91
    Par défaut [Applet] Accès refusé malgré signature
    Bonjour,

    J'ai une application J2EE et je souhaiterais utiliser une applet depuis une jsp. Cette applet doit accéder en lecture à des fichiers situés sur le disque dur du client. Afin que cela fonctionne j'ai signé mon jar de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    keystore  -genkey -alias yop -validity 365
    jarsigner c:\MonJar.jar yop
    puis quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    jarsigner -verify -verbose -certs c:\MonJar.jar
    il me met bien que le jar est correctement signé.
    Je le place dans le webapps et quand je lance la jsp on me demande si je suis d'accord avec le certificat, puis j'obtiens l'erreur d'accès refusé dans java.io.FilePermission.
    Pourquoi? Cela vient il des java.policy? Aurais je oublié quelquechose?
    Merci d'avance pour vos réponses

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 91
    Par défaut
    J'ai repris le tutorial http://www.developer.com/java/ent/article.php/3303561
    et l'applet fonctionne très bien. J'ai ensuite repris mon applet et je l'ai signé avec la même Key que pour le tutorial. Quand je lance ma page html, on me demande bien de signer, et puis ensuite rien. Juste un message dans la console indiquant que je n'ai pas le droit de lecture... alors que ça a marché avec le tutorial.

    Mon appli a pour but d'ouvrir Outlook avec un fichier joint. J'utilise l'API JDIC. Le code de l'applet est pour le moment très simple et ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    try
    {
    Message msg = new Message(); List toList = new ArrayList();
    toList.add(<a href="mailto:monmail@dvp.fr">monmail@dvp.fr</a>);
    msg.setToAddrs(toList);
    List ccList = new ArrayList();
    ccList.add("<a href="mailto:monmail2@dvp.fr">monmail2@dvp.fr</a>");
    msg.setCcAddrs(ccList);
    msg.setSubject("Hello");
    msg.setBody("Test");
     List attachList = new ArrayList();
    attachList.add("c:\\ed.txt");
    msg.setAttachments(attachList);  
    Desktop.mail(msg);
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }

    Quelqu'un aurait il une idée? Une explication?
    Merci

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 204
    Par défaut
    Citation Envoyé par Bartuk
    J'ai repris le tutorial http://www.developer.com/java/ent/article.php/3303561
    et l'applet fonctionne très bien. J'ai ensuite repris mon applet et je l'ai signé avec la même Key que pour le tutorial. Quand je lance ma page html, on me demande bien de signer, et puis ensuite rien. Juste un message dans la console indiquant que je n'ai pas le droit de lecture... alors que ça a marché avec le tutorial.

    Mon appli a pour but d'ouvrir Outlook avec un fichier joint. J'utilise l'API JDIC. Le code de l'applet est pour le moment très simple et ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    try
    {
    Message msg = new Message(); List toList = new ArrayList();
    toList.add(<a href="mailto:monmail@dvp.fr">monmail@dvp.fr</a>);
    msg.setToAddrs(toList);
    List ccList = new ArrayList();
    ccList.add("<a href="mailto:monmail2@dvp.fr">monmail2@dvp.fr</a>");
    msg.setCcAddrs(ccList);
    msg.setSubject("Hello");
    msg.setBody("Test");
     List attachList = new ArrayList();
    attachList.add("c:\\ed.txt");
    msg.setAttachments(attachList);  
    Desktop.mail(msg);
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }

    Quelqu'un aurait il une idée? Une explication?
    Merci
    j avais eu le meme probleme et j ai modifer le java.policy pour donner els droits

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 91
    Par défaut
    Ok merci.
    Je suppose qu'il s'agit du java.policy que l'on trouve dans le répertoire :
    Program Files\Java\jre_1.XX\lib\security, non?

    En tout cas quand je le modifie ca marche. Mais ça signifie qu'il faudra le modifier sur tous les postes clients ...

    Pourquoi la signature de l'applet ne suffit elle pas? Pourquoi le java.policy que l'on peut placer dans le jar ne suffit pas non plus? Y a t il moyen d'y échapper afin que les utilisateurs puissent ne pas à avoir à modifier le java.policy situé dans le répertorie cité au dessus?
    Merci

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut
    Citation Envoyé par Bartuk
    Ok merci.
    Je suppose qu'il s'agit du java.policy que l'on trouve dans le répertoire :
    Program Files\Java\jre_1.XX\lib\security, non?

    En tout cas quand je le modifie ca marche. Mais ça signifie qu'il faudra le modifier sur tous les postes clients ...

    Pourquoi la signature de l'applet ne suffit elle pas? Pourquoi le java.policy que l'on peut placer dans le jar ne suffit pas non plus? Y a t il moyen d'y échapper afin que les utilisateurs puissent ne pas à avoir à modifier le java.policy situé dans le répertorie cité au dessus?
    Merci


    Salut,
    je voudrais savoir si tu as trouvé reponses à tes questions car j'ai grossomodo
    le meme probleme, mon applet doit se connecter à un serveur mais l'erreur suivante s'affiche dans la console java :

    access denied (java.net.SocketPermission 172.25.135.25:80 connect,resolve)
    j'essaie donc d'ecrire mon fichier java.policy.applet, j'ai essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import java.net.SocketPermission;
     
    grant {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "172.25.135.25:80","connect";
    };
    mais ca ne marche pas, si tu sais comment rediger ce fichier ton aide serait grandement appreciée
    merci

    PS: il faut modifier aussi le java.policy dans le program files dans les postes clients ?!!

Discussions similaires

  1. Applet + accès à un fichier
    Par gids01 dans le forum Applets
    Réponses: 3
    Dernier message: 02/10/2006, 02h04
  2. [applet] accès aux fichiers du poste client
    Par romu92 dans le forum Applets
    Réponses: 4
    Dernier message: 09/05/2006, 15h40
  3. [Applet] Accès aux fichiers
    Par alabakan dans le forum Applets
    Réponses: 2
    Dernier message: 21/10/2005, 09h33
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo