Question

Un JApplet peut-il utiliser un JFileChooser afin que l'utilisateur puisse sélectionner un fichier sur son disque dur? Ou est-ce que cela violerait la sécurité de l'applet Java? (Je suppose que les paramètres de sécurité par défaut sont utilisés. Je ne souhaite pas demander à mes utilisateurs de m'accorder des autorisations supplémentaires.)

Était-ce utile?

La solution

Ce fil indique que vous devez signer numériquement votre applet. avant qu'un JFileChooser ne soit autorisé.

Autres conseils

Comme indiqué précédemment, vous devez signer votre applet, ce qui entraîne un "avertissement de sécurité vague". lorsque l'utilisateur est présenté l'applet. Lorsque l'utilisateur accepte d'exécuter cette applet, celle-ci bénéficie d'un accès complet et fonctionne comme une application ordinaire avec des implications évidentes en matière de sécurité. Je suis dans le même dilemme en ce qui concerne une application Web sur laquelle je travaille et je ne sais pas encore si elle sera déployée.

Vous pouvez également utiliser le navigateur de fichiers intégré dans le navigateur Web et renvoyer le contenu du fichier de votre serveur si vous travaillez avec des fichiers plus petits.

Vous pouvez également prendre certaines mesures de sécurité concernant un applet signé:

  • Validation de l'origine du code de l'applet.

    URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation();
    if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false)
       return false;
    
  • Vérification de l'URL de base à partir de laquelle l'applet a été exécutée.

    URL documentUrl = this.getDocumentBase(); 
    if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false)
       return false;
    

Dans ce cas d'utilisation des paramètres par défaut, le gestionnaire de sécurité par défaut n'autorise pas l'accès aux fichiers locaux.

Vous devrez probablement utiliser PrivilegedAction pour lire quoi que ce soit sur le disque dur de l'utilisateur. Tout comme @mmyers a dit que vous deviez signer votre applet également.

Donc, votre réponse est oui, je l'ai déjà fait, alors je sais que cela peut être fait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top