Wir haben eine Webanwendung, die Java-Applet verwendet, um Dateien auf lokaler Festplatte zu bearbeiten. Wir entwickeln es für eine ganze Weile und wir kennen bereits alle Arten von Problemen, die ein Applet mit modernen Betriebssystemen und Browsern und neuesten Java-Versionen und neuen Sicherheitsbeschränkungen haben kann.Java-Applet kann Dateien unter Safari 7 nicht öffnen (Mac OS X 10.9)
Gestern hat Apple seine neuen Mac OS 10.9 Mavericks mit dem neuen Safari Browser (7.0) ausgerollt. Ich habe unsere Web-App unter Safari 7/Mac OS X 10.9 getestet, nur um festzustellen, dass Safari 7 (wahrscheinlich?) Den Zugriff auf lokale Dateien vom Java-Applet aus blockiert.
Obwohl das Applet (mit gültigem Thawte-Zertifikat signiert und mit allen für Java 7u45 spezifischen Sicherheitsanforderungen) im uneingeschränkten Modus mit vollem Zugriff auf lokales Dateisystem ausgeführt wird (Java-Sicherheitsabfrage sagt dies), versucht es auf das lokale Dateisystem zuzugreifen Datei, die es FileNotFoundException fängt:
java.io.FileNotFoundException: /Users/yury/Pictures/Paris 2012/L1050258.jpg (Operation not permitted)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at com.trackntag.a.v.a(Unknown Source)
auch wenn Java-Datei öffnen-Dialog aus dem Applet zu öffnen, zeigt es keine Dateien und Ordner in der Ordnerauswahl keine Symbole hat (in der Regel sollten sie sie haben). Wenn Sie zurück zum Stammordner navigieren, können Sie Ordner auf oberster Ebene (bin, cores, dev, home usw.) sehen, aber Sie können nicht zu ihnen navigieren.
Das Applet hat Zugriff auf lokale Dateien mit dem neuesten Firefox 24 für Mac, auf dem gleichen Computer (Java 7u45, Mac OS X 10.9). Das Gleiche gilt für Safari 6 und Mac OS X 10.8.5, ganz zu schweigen von Linux- und Windows-Rechnern in verschiedenen Konfigurationen: keine Probleme beim Zugriff auf lokale Dateien.
alle oben zu haben, muss ich feststellen, dass wir in das Problem spezifisch für Safari ran 7.
Haben Sie zu diesem Thema irgendwelche Ideen? Alle Gedanken werden sehr geschätzt.
Cheers, Yury
EDIT (Antwort): In Safari 7 eine neue Sicherheitseinstellung ist: Safe/Unsafe-Modus (ich denke, es ist für Java-Plug-in nur). Sie können zulassen, dass das Java-Plugin im unsicheren Modus entweder für einzelne Websites oder für alle Websites funktioniert. Im unsicheren Modus haben die Applets uneingeschränkten Zugriff auf das lokale Dateisystem.
Es scheint, dass diese Sicherheitseinstellung über die eigenen Sicherheitseinstellungen von Java hinausgeht (eingeschränkter/uneingeschränkter Zugriff).
Diese Einstellung ist über die Safari-Einstellungen/Registerkarte Sicherheit/Internet-Plugins verfügbar: Verwalten Sie die Website-Einstellungen (wählen Sie dann Java-Plugin).
Also wenn ich bereits meine eigene ursprüngliche Frage beantwortet habe, würde ich es lieber anders formulieren: Ist es möglich, den unsicheren Modus zu setzen oder den abgesicherten Modus für eine bestimmte Website/URL zu überschreiben, ohne den Benutzer zu bitten, diese Sicherheitsvoreinstellung einzustellen? Vielleicht würde etwas wie Apple Entwicklerzertifikat helfen?
Danke nochmal!
Awesome, Ihr Kommentar bearbeiten es für mich fixiert. Danke, dass du die Beinarbeit gemacht hast. –