Einrichten von Richtlinien für ein Applet eingebettet in HTML

Ich habe ein Applet, um einen screenshot aufzunehmen und speichern Sie es auf dem computer des Benutzers mit der java.das awt.Roboter-Klasse. Ich muss embedd dieses applet in eine html-Seite (mit dem object-tag), so dass, wenn der Benutzer auf eine Schaltfläche klickt, auf die Webseite der screenshot gemacht wird.

Applet selbst funktioniert einwandfrei, ich habe es getestet, indem ein temporäres main-Methode, um es und es läuft auf meinem lokalen Rechner als reguläre java-app.

Wo ich Schwierigkeiten beim einrichten von Berechtigungen, damit Sie ausgeführt, aus seiner eingebetteten Lage. Offensichtlich ist der robot-Klasse ist etwas gefährlich so eine AWTPermission geschaffen werden muss, und das applet selbst unterschrieben werden muss.

Folgte ich durch die Anleitung auf http://download.oracle.com/javase/tutorial/security/toolsign/index.html und es gelungen, eine signiert .jar-Datei und dann eine policy-Datei, erlaubt die demo-Anwendung in das tutorial zu führen. Wo ich jetzt bin in Probleme laufen wird, wie Sie zu versöhnen, was ich habe gelernt mit der situation mein applet verwendet werden.

Meine Zielgruppe umfasst rund 100 Maschinen und ich brauche es lauffähig auf allen von Ihnen. Ich packte meine java .class Datei in eine .Glas und unterzeichnet es mit keytool und jarsigner. Ich habe dann hochgeladen .jar-und .cer-Dateien in das server Verzeichnis wo die Seiten in Frage gehostet werden.

Allerdings: Wenn ich dann policytool verwendet, um erstellen Sie eine neue policy-Datei auf eine der Maschinen zu testen die setup bin ich noch nicht in der Lage zu führen Sie das applet aus der HTML. Ich bekomme Java.Sicherheit.AccessControlException Acess Denied java.das awt.AWTPermission createRobot Fehler.

Ich vermute eher, dass seine politischen Schritt, der schief geht, so werde ich skizzieren die Schritte, die ich nahm:
Ich laden Sie das Zertifikat auf dem lokalen Rechner und generieren Sie einen keystore aus, ich Start "policytool" aus diesem Verzeichnis über die Kommandozeile
Füge ich das Verzeichnis auf dem lokalen Rechner, auf dem der keystore erzeugt und mein Zertifikat befindet.
Ich drücke dann die Schaltfläche Richtlinie hinzufügen, und geben Sie die SignedBy-alias
Dann Fügen Sie die Berechtigungen und wählen Sie AWTPermission
Ziele name, den ich wählen createRobot
Die Funktion Feld, das ich verlassen leer, da kann ich nicht denken, was würde hier gelten
Unterzeichnet Durch die in diesem Fenster auch leer
Ich drücke dann auf 'OK' und 'Fertig' und eine Warnung erhalten, dass es gibt keine öffentlichen Schlüssel für den alias habe ich eingetragen in der erste Schritt. Ich mache ein 'speichern unter' und speichern Sie meine policyfile in das gleiche Verzeichnis wie ich das Zertifikat und den keystore erzeugt es.

Dies ist nicht erlaubt mir, das applet von der Webseite jedoch und meinem begrenzten Verständnis für diesen Aspekt der Programmierung bietet keine Anhaltspunkte, was schief gegangen ist.

Ideen, Gedanken, Beobachtungen? Wenn ich nicht ausdrücklich erwähnt, so dann ich haben getan es. Mein größter Verdacht ist die Warnung, die ich erhalten, aber ich kann nicht scheinen, um herauszufinden, warum sein erscheinen

EDIT: Vergaß zu erwähnen, ein Schritt. Ich manuell Hinzugefügt, um meine jre\lib\security\java.Sicherheit Datei die Zeile " - Politik.url.3=file:/C:/Test/debugpolicy", denn das ist der Pfad und der Politik mit dem Namen I angelegt, die während der oben genannten Schritte. Ich habe auch gerade jetzt, zu entfernen verwaltet die Warnung, die ich bereits erwähnt, würde ich mischen, meine alias' und gab den alias für privaten keystore eher als die öffentlichkeit während der policyfile-Erstellung, allerdings habe ich noch begegnen die gleichen Probleme

InformationsquelleAutor celem | 2011-03-15
Schreibe einen Kommentar