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] créer un fichier depuis une applet.


Sujet :

Applets Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut [applet] créer un fichier depuis une applet.
    Bonjour,

    J'ai un programme fonctionnant correctement en version logiciel. Je souhaite le mettre disponible sur le net via une applet java. Mon programme permet de créer des fichiers (la sauvegarde). Je voulais savoir si c'etait possible de créer une fichier chez le client depuis une applet. Quand j'utilise ma méthode il me lance une exception

    java.security.AccessControlException: access denied (java.io.FilePermission bidule.txt write)
    Voila je pense que ca peut etre possible. Mais comment je ne sais pas
    Merci

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2005
    Messages : 97
    Points : 208
    Points
    208
    Par défaut
    En fait pour éviter de mettre n'importe quoi sur la machine d'un client tout est vérouillé lorsqu'il s'agit d'applet . On ne peut donc avoir accès au disque du client . SAUF si on signe son applet. Des lors le client aura a accepter un certificat pour pouvoir utiliser l'applet et surtout pour que celle ci ai accès a son disque.


    Pour signer une applet il faut utiliser un programme inclus dans le JDK qui s'apelle keytool (%pathJDK%/bin/keytool ou %pathJDK%\bin\keytool c'est selon...).

    http://ragingcat.developpez.com/java...tool/ui/#LII-A

  3. #3
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut
    Ok d'accord ca m explique plus clairement cette histoire de signature. En réalité je ne voulais pas créer un fichier sur la machine du client. Je souhaite plutot créer le fichier sur le serveur web. (les utilisateurs pourront ensuite télécharger le fichier créer par un autre).

    Comment puis je faire pour a partir d'une applet qui est lancée chez l'utilisateur enregistrer un fichier sur le serveur. Je ne sais pas si je me fais bien comprendre. (Je voulais au début créer un fichier et l'uploader sur le serveur) Dans mon cas est il possible d'enregistrer directement le fichier sur le serveur. Y aurait il un problème de signature??

    Merci

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2005
    Messages : 97
    Points : 208
    Points
    208
    Par défaut
    Pour la création de fichier il faut absolument signer l'applet .
    Pour le téléchargement sur serveur cela dépend de l'environnement dans lequel tout ca va vivre .

    Dans le cas ou sur le serveur sont des servlets :
    ceci http://java.developpez.com/faq/java/...applet_servlet devrait faire l'affaire.
    Dans le cas ou il y a un serveur ftp pour envoyer les données la machine qui servira de serveur web il faudra utiliser ceci http://java.developpez.com/faq/java/...eau#RESEAU_ftp (mais ne serait ce pas la faq de developpez.com?? )

  5. #5
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut
    Houla tout ca m a l'aire compliqué

    Je vais déjà essayer de créer un fichier à partir de mon applet en local et après je verrai.

    En tout cas une grand merci pour ton aide

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2005
    Messages : 97
    Points : 208
    Points
    208
    Par défaut
    Ben le message précédent etait la juste pour te dire que la méthode n'est pas compliquée mais qu'elle dépend énormément de la manière dont tu veux poser tes fichiers sur le serveur , en FTP ou avec des servlets dans les exemples que j'ai donné tout a l'heure

  7. #7
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut
    J'ai encore un petit souci. On doit pouvoir le résudre facilement à mon avis.

    J'ai signé mon applet sans trop de soucis. Le problème est que j'appelle une méthode de cette applet depuis un lien hypertexte. C'est cette méthode qui me crée un fichier sur ma machine.

    Quand j'exécute la méthode directement dans l'init mon fichier se crée bien. Quand j'appelle la méthode depuis le lien hypertexte, il me met la meme erreur qu'avant. (Access denied java.io.FilePermission) Pourtant mon applet est signé.

    Voici le code de mon Html pour mieux me faire comprendre.

    <applet codebase="./"
    code="ModXApplet.class"
    archive="secutest.jar"
    name="monApplet"
    width="650"
    height="500"> // si je place save() dans le init() ca marche

    Votre navigateur n'est pas compatible java.
    </applet>
    <br>
    <a href="javascript:document.monApplet.save()">Enregistrer</a> //si le save se lance d'ici ca ne fonctionne pas
    Merci d'avance

  8. #8
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut
    Oh moins savoir si c'est possible pour ne pas perdre de temps pour rien dans mon projet..

  9. #9
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2005
    Messages : 97
    Points : 208
    Points
    208
    Par défaut
    Je ne sais pas si c'est possible mais ca me parait super louche (appeler une applet java comme un objet javascript et en appeler les methodes : )
    Ce qui par contre serait possible .... ce serait de mettre un JMenuItem "save" dans l'applet (et dans un JMenu bien evidemment) ou un bouton carrément sur l'applet, l'action sur ce composant appelant la methode save de l'applet).
    Appeler une methode comme toi me parait vraiment ... etrange et je ne penses pas que ca fonctionne

  10. #10
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut
    Appeler une méthode d'un applet de cette maniere fonctionne très bien, tant que cette méthode est public et appartient à la classe de l'applet. (Ici ca appelle bien la méthode mais ne crée pas le fichier)

    Malheureusement il faudrait que je puisse signaler le JAR. Il ne doit pas voir que l'applet est signée

    Je sais que je pourrais tout mettre dans une applet, mais ca serait pas terrible dans mon cas.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    je sais que le message commence à dater, mais je suis confronté au même problème :
    Avec applet signée, une méthode publique d'accès au disque client s'exécute parfaitement, mais impossible de l'appeler depuis javaScript...AccessContrlException

    C'est sécurisé, normal
    Vous avez trouvé la solution pour contourner ça ?
    Merci

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Pour exécuter maMethode à partir de javascript, ma méthode accédant par exemple au disque du client, il faut l'éxécuter dans une action privilégiée de l'applet.
    Pensez aussi dans ce cas à intégrer la classe anonyme dans le jar qui sera signé...
    ======================================
    Réponse : (code JAVA)

    public void maMethode(final String var1,final String var2)
    {
    AccessController.doPrivileged(new PrivilegedAction() {
    public Object run() {
    // Note: variable doit être final
    // votre code JAVA qui générait une exception
    return null;
    }
    });
    }

  13. #13
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    Je préfère passer par la signature de l'applet. Mon navigateur me demande de valider le certificat que j'ai créé moi-meme.
    Mais comme je veux faire payer l'accès à mon site, je me demande si en achetant un certificat à un organisme, je peux l'utiliser à la fois pour la connexion SSL du site ET pour la signature de l'applet.
    Sinon faut que j'achète deux certificats, et c'est cher de l'octet ces conneries !

    Quelqu'un l'a déjà fait ? c'est tendu ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/11/2009, 10h17
  2. Ouvrir un fichier depuis une applet
    Par julie4207 dans le forum Applets
    Réponses: 1
    Dernier message: 20/12/2008, 06h23
  3. Télécharger un fichier depuis une applet
    Par doudblast dans le forum Applets
    Réponses: 4
    Dernier message: 08/03/2006, 16h17
  4. [applet] Enregistré un fichier depuis l'applet
    Par BouB dans le forum Applets
    Réponses: 2
    Dernier message: 01/02/2006, 11h19

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