Frage

Kann ein JApplet eine JFileChooser verwenden, so dass der Benutzer eine Datei auf seiner Festplatte auswählen kann? Oder würde dies verletzt Java-Sicherheits Applet? (Ich gehe davon aus, dass die Standardsicherheitseinstellungen verwendet werden. Ich will nicht meine Benutzer bitten, mir zusätzliche Berechtigungen zu erteilen.)

War es hilfreich?

Lösung

Dieser Thread zeigt an, dass Sie digital Ihr Applet signiert werden muss bevor ein JFileChooser zulässig ist.

Andere Tipps

Wie bereits erwähnt, müssen Sie Ihr Applet unterzeichnen, die in einer „vagen Sicherheitswarnung“ führen, wenn der Benutzer das Applet präsentiert wird. Wenn der Benutzer akzeptieren dieses Applet ausführen zu können, wird das Applet vollen Zugriff und Funktionen wie eine normale Anwendung gegeben mit offensichtlich Auswirkungen auf die Sicherheit ist. Ich bin in dem gleichen Dilemma in Bezug auf eine Web-Anwendung auf ich arbeite und ist noch nicht sicher, ob es wird eingesetzt bekommen.

Sie können alternativ das eingebaute in Dateibrowser im Web-Browser und prallen die Datei-Inhalt vom Server zurück, wenn Sie mit kleineren Dateien arbeiten.

Auch einige Sicherheitsmaßnahmen können Sie ein signiertes Applet betreffend sind:

  • Validieren der Ursprung des Applet-Code.

    URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation();
    if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false)
       return false;
    
  • Überprüfen der Basis-URL, von dem das Applet ausgeführt wurde.

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

In diesem Fall (die Standardeinstellung), Sie sind richtig, ist die Standard-Sicherheitsmanager erlauben keinen Zugriff auf lokale Dateien.

Sie werden wahrscheinlich haben PrivilegedAction verwenden etwas vom Benutzerfestplatte zu lesen. So wie @mmyers sagte Sie Ihr Applet auch zu unterzeichnen haben.

So Ihre Antwort ist ja, ich dies getan haben, bevor, so weiß ich es getan werden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top