Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Guten Morgen!
Auf meiner eigenen Webseite hab ich schon lange ein eigens dafür erstelltes Javaapplet für mich im Einsatz. Das Applet speichert vom Server gesendete Dateien auf meinem PC in vorgegebenen Verzeichnissen, was mir die Arbeit enorm erleichtert. Damit das klappt habe ich in meinem Userverzeichnis (Windows) eine datei .java.policy angelegt mit folgendem Inhalt:
Code:
grant codeBase "http://www.meinewebseite.de/java/" { permission java.io.FilePermission "<<ALL FILES>>", "write"; };
Das lief auch immer wunderbar. Aber seit einem der neuesten Updates von Java scheint das nicht mehr zu wirken. In der Konsole steht:
Frage: Gibt es in den neuen Java Versionen noch eine Möglichkeit, durch einen Eingriff in die lokale Konfiguration diese Berechtigung für Java zu erteilen? Falls ja, wie? Was hat sich da geändert?
das Problem ist, dass Oracle mit dem Java7_u51 irgendetwas so abgeändert hat, das alte Einstellungen nicht mehr laufen.
Hast du deine Anwendung signiert? Das könnte - selbst mit einem Self-Signed-Certificate - vielleicht schon Abhilfe schaffen. Auch könntest du beim Build des Applets vielleicht dein Manifest updaten. Ich selber habe nur ein bisschen mit dem Build-Prozess unseres JavaFX-basierten Applets zu tun und weiss nur, dass es Unterschiede zwischen dem Build-Prozess und dem "alter" Applets gibt... -.-
Am besten recherchiere noch einmal bezüglich der Änderungen in den Permissions ab der o.g. Java-Version. Oder vielleicht hilft dir ja der Ansatz hier:
Habe hier eine Version mit lesbarem Quellcode, die heißt localfile.java und die compilierte Binärversion heißt localfile.class
Bei beiden kommt erst die Abfrage der Passphrase und danach erhalte ich obige Fehlermeldung. Pfade und Groß-/Kleinschreibung stimmen.
Der Aufruf:
Was kann ich tun, um herauszufinden, warum es die Datei nicht öffnen kann? Bei allen Suchergebnissen ging es um Schreibweise oder Pfad. Das kann ich hier ausschließen, denn sonst würde es den Keystore im selben Verzeichnis ja auch nicht finden.
Kann es sein, dass am Applet vorher irgendwas geändert werden muss, bevor es signiert werden kann?
jar cfmv s:\verz\localfile.jar s:\verz\manifest.mf s:\verz\localfile.class
erstmal eine jar Datei erzeugt habe.
Danach signiert, aber: Der Browser zeigt im Popup trotzdem, dass die Anwendung nicht signiert sei. Wie kann ich da hinter steigen, wieso sie nicht signiert ist?
Das Endergebnis nach jarsigner -verify -verbose -certs s:\verz\localfile.jar sieht so aus:
Code:
s k 156 Wed Apr 02 12:49:20 CEST 2014 META-INF/MANIFEST.MF
X.509, CN=My Name, C=de (localfile)
[certificate is valid from 02.04.14 12:28 to 30.03.24 11:28]
334 Wed Apr 02 12:49:20 CEST 2014 META-INF/LOCALFIL.SF
866 Wed Apr 02 12:49:20 CEST 2014 META-INF/LOCALFIL.DSA
0 Wed Apr 02 12:47:44 CEST 2014 META-INF/
smk 23121 Fri Dec 16 16:58:00 CET 2011 s:/verz/localfile.java
X.509, CN=Pro Saldo Web, C=de (localfile)
[certificate is valid from 02.04.14 12:28 to 30.03.24 11:28]
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope
jar verified.
Warning:
This jar contains signatures that does not include a timestamp. Without a timestamp, users may not be able to validate this
jar after the signer certificate's expiration date (2024-03-30) or after any future revocation date.
Die Browser bzw. Java hält das trotzdem für ein unsigniertes Applet, so zumindest zeigt es das Popup. Was läuft hier falsch?