Berechtigungen in der Datei "java.policy"
Die Java™ 2-Sicherheit verwendet mehrere Richtliniendateien, um die erteilte Berechtigung für jedes Java-Programm zu bestimmen.
Die Liste der verfügbaren Richtliniendateien, die von WebSphere Application Server unterstützt werden, finden Sie unter Richtliniendateien für die Java-2-Sicherheit.
Für IBM Technology for Java finden Sie die Datei "java.policy" im Verzeichnis
Java-Ausgangsverzeichnis/jre/lib/security.
Die Datei "java.policy" wird für alle JVMs systemweit unterstützt. Editieren Sie nicht die Datei
"java.policy" auf dem Server.
![[IBM i]](../images/iseries.gif)
- Geben Sie QShell ein.
- Wechseln Sie mit "cd" in das Verzeichnis Profilstammverzeichnis/bin.
- Rufen Sie wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}' auf.
Die Datei java.policy
ist eine globale Standardrichtliniendatei, die von allen Java-Programmen, die in der JVM
auf dem Knoten ausgeführt werden, gemeinsam genutzt wird. Änderungen an der Datei
java.policy ist lokal für den Knoten. Die Java-Standardrichtlinie
wird automatisch ausgewählt. Syntaxfehler in den Richtliniendateien verhindern, dass der Anwendungsserver gestartet wird. Eine aktualisierte Datei
java.policy wird auf alle Java-Programme angewendet, die in den JVMs auf dem
lokalen Knoten ausgeführt werden. Starten Sie die Programme neu, damit die Änderungen in Kraft treten. Sie sollten diese Datei nicht ändern. Wenn
eine bestimmte Änderung
an einigen Java-Programmen auf einem Knoten vorgenommen werden muss
und die Datei java.policy aktualisiert werden muss,
ändern Sie die Datei java.policy sortfältig mit dem Richtlinientool.
Weitere Informationen hierzu finden Sie im Artikel Mit PolicyTool Richtliniendateien für die Java-2-Sicherheit verwenden.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
Standardberechtigungen für die Datei java.policy
// Standarderweiterungen erhalten standardmäßig alle Berechtigungen
grant codeBase "file:${java.home}/lib/ext/*" {
permission java.security.AllPermission;
};
// Die Standardberechtigungen werden allen Domänen eingeräumt
grant {
// Ermöglicht jedem Thread, sich selbst mit der Methode java.lang.Thread.stop()
// zu stoppen. Diese Methode wird ohne Argumente verwendet.
// Diese Berechtigung wird standardmäßig nur aus Gründen der
// Abwärtskompatibilität gewährt.
// Es wird dringend angeraten, diese Berechtigung aus dieser Richtliniendatei
// zu entfernen oder es auf von Ihnen angegebene Coderessourcen
// einzuschränken, weil Thread.stop() potenziell unsicher ist.
// Weitere Informationen finden Sie unter "http://java.sun.com/notes".
// Berechtigung java.lang.RuntimePermission "stopThread";
// Ermöglicht jedermann den Empfang an nicht privilegierten Ports
permission java.net.SocketPermission "localhost:1024-", "listen";
// Standardeigenschaften, die von jedem gelesen werden können
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.vm.specification.version","read";
permission java.util.PropertyPermission "java.vm.specification.vendor","read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
};
Sollten einige Java-Programme auf einem Knoten Berechtigungen benötigen, die in der Datei java.policy nicht als Standards definiert sind, sollten Sie die Datei java.policy aktualisieren. In den meisten Fällen werden an Stelle der Datei java.policy andere Richtliniendateien aktualisiert. Die fehlende Berechtigung löst die Ausnahme java.security.AccessControlException aus. Die fehlende Berechtigung ist in den Ausnahmedaten angegeben.
java.security.AccessControlException: access denied (java.io.FilePermission
C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar read)
Geben Sie die beiden obigen Zeilen in einer Zeile ein.
Wenn ein Java-Programm diese Ausnahme empfängt und das Hinzufügen dieser Berechtigung berechtigt ist, fügen Sie der Datei java.policy eine Berechtigung hinzu.
grant codeBase "file:Installationsposition_des_Benutzerclients" {
permission java.io.FilePermission
"C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar", "read"; };
Um zu entscheiden, ob eine Berechtigung hinzugefügt werden soll, lesen Sie die Informationen im Artikel zu den Zugriffssteuerungsausnahmen für die Java-2-Sicherheit.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)