# Erstellen einer Policy-Datei



## Ferra (7. Jan 2005)

Tach auch,

ich habe ein Applet in ein jar gepackt, zum Starten des Applet eine HTML-Datei gebaut, einen Schlüssel in der Datenbank .keystore angelegt und brauche nun eine Policy-Datei (soweit ich weiß).

Die Policy-Datei soll zunächst in dem Ordner liegen, indem mein Profil liegt. Erstmal will ich alles nur auf meiner eigenen Maschine testen.

Laut Buch muß die Datei ".java.policy" heissen. So kann ich die Datei jedoch nicht speichern (man beachte den führenden Punkt).
Habe schon alles probiert, krieg's aber nicht hin. Auch das Ablegen der Datei in dem Ordner ".java", welcher sich ebenfalls in meinem Profil befindet, bringt nichts.

Was mache ich falsch?

THX im voraus für jeden Tip.


----------



## foobar (7. Jan 2005)

Benutz doch da Policytool unter $JAVA_HOME/bin/policytool.


----------



## Ferra (7. Jan 2005)

Also, jetzt habe ich das Policy-Tool genommen. Datei erzeugt und ... geht noch nicht.

Das signed-Jar und die Html befinden sich im gleichen Verzeichnis.
Keystore und policy in meinem Profil.

Trotzdem krieg ich ne Fehlermeldung, wenn beim Starten versucht wird aus einer Datei zu lesen. D.h., die Permission read scheint unbekannt zu sein bzw. die gesamte Policy wird nicht gezogen. Falscher Speicherort oder so??????????????


----------



## Ferra (10. Jan 2005)

hallo zusammen,

also, ich habe jetzt ein wenig gelesen und ein wenig gebastelt. Jetzt findet er zwar alle Klassen beim Laden des Applets, aber wenn er Text in eine Datei schreiben soll kommt ne IO-Permission; Access denied usw. ...

Mir ist aufgefallen, dass er beim Laden des Applets mich gar nicht fragt, ob ich dem Zertifikat vertrauen will. D.h., evtl. schert er sich nicht um das Zertifikat (uns somit um die policy)????????

Das Jar-File habe ich mit dem richtigen Schlüssel aus .keystore signiert. Trotzdem will er einfach nicht in die Datei schreiben :cry: 

Woran könnte es liegen??

THX für jeden Tip.


----------



## Spacerat (11. Jan 2005)

Da werkelt jemand mit Windows gelle? (ich zitiere mal den vorangestellten Punkt :lol: )

Es ist ja möglich, das beim ausprobieren schon irgenwo ein Zertifikat gespeichert wurde. Unter Windows kann man in den Plug-In-Einstellungen oder in den Internetoptionen die installierten Zertifikate verwalten und ggf. löschen. Hauptsache ist, man weis, welche man dort löschen muß (Domain-Namen beachten).


----------



## Ferra (11. Jan 2005)

Moin,

also, bei den Internetoptionen habe ich nachgesehen, da ist nichts was auf mein Zertifikat hinweist. Normalerweise sollt mich der IE beim Starten des Applets (da dies signiert ist) doch fragen, ob ich dem Zerifikat vertraue oder nicht?!?! Macht er aber nicht. Wie kann ich rauskriegen, woran das liegt? Habe schon mehrere Beiträge hier im Forum gefunden, die praktisch auf das gleiche Problem deuten.  ???:L

Ach ja, hab grad noch was rausgefunden:

Wenn ich den Eintrag 'signedby' weglasse, funzt alles. Allerdings kann das Ganze dann auch auf ein unsigniertes Jar-File anwenden, m.a.w., das Zertifikat, welches ich in .keystore angelegt habe spielt keine Rolle mehr. Das ist aber doch nicht sinn der Sache. Außerdem müßte ich dann ja jedem User eine policy-Datei ins Home-Verzeichnis legen, oder???????


----------



## Spacerat (11. Jan 2005)

Es gibt doch noch 4 Punkte unter Einstellungen (Systemsteuerung)/Java-Plug-in/(Tab) "Zertifikate" die man auf vorhandene Zertifikate untersuchen kann. Wenn der Browser nicht nachfragt, ob das Zertifikat installiert werden soll, gibt es lt. meiner Erfahrung eigentlich nur die Möglichkeiten 1. Es ist schon ein Zertifikat installiert oder 2. Die Internetanwendung hat (bzw. braucht) keins.

Bei "Java ist auch eine Insel" in Kapitel 18.11 (Da geht es um RMI) kommt im übrigen ein Beispiel, wie man einen Security Manager über eine policy-Datei konfiguriert. Jetzt weis ich nicht ob das unbedingt weiterhilft, aber auf jeden Fall wird hier eine policy-Datei ohne einen vorangehenden Punkt verwendet.

Es ist ja immerhin möglich, das auch ein Applet einen solchen Security Manager konfigurieren muß. Mit diesem Thema befasse ich mich auch gerade.


----------



## Ferra (11. Jan 2005)

Also, so langsam wird's was.

Standardmäßig heisst die Datei '.java.policy' und liegt im User-Home-Verzeichnis. Sie kann jedoch im Prinzip jeden beliebigen Namen haben und an jedem beliebigen Ort liegen. Allerdings wird sie dann nicht automatisch geladen. In diesem Fall muss bei Aufruf des Java Interpreters expliziert der Parameter '-J-Djava.security.policy=' gefüllt werden. Damit habe ich mich jedoch noch nicht näher befasst. Wie man das Ganze so gestaltet, dass man nicht auf jedem Rechner eine policy hinterlegen muss weiß ich auch noch nicht. Ich arbeite daran. Wer es weiß, oder einen grundsätzlich besseren Weg hat möge sich bitte melden.
In meinem Fall möchte ich erstmal nur lernen und testen. Evtl. soll mein Applet später im FirmenIntranet verfügbar sein.

Ach ja, bei dem ganzen tüffteln ist auch rausgekommen, daß nach dem Anleggen neuer Schlüssel in keystore und dem Bearbeiten der policy und des signierten Jar-File es aufeinmal mit dem Applet funzt. Frag bloß nicht warum.


----------



## Spacerat (15. Jan 2005)

Ist es möglich das das Applet Offline auf einem Webserver im LAN läuft, und du die notwendigen Policies mit dem Keytool dort verteilt hast?

Mir fällt da gerade das allseits beliebte IRC-Applet (mit all seinen Klonen, MIRC usw.) ein, wo man per Requester gefragt wird, ob man dem Applet vertrauen möchte und dafür ein Zertifikat installieren möchte. So verteilt sich das IRC-Applet im gesamten Internet. Möchte zu gerne wissen wie das mit dem Requester funktioniert.


----------

