Berechtigungen in der Datei client.policy
Die Java™-2-Sicherheit bestimmt anhand mehrerer Richtliniendateien die Berechtigung für jedes Java-Programm.
- Die Datei client.policy ist eine Standardrichtliniendatei, die von allen Clientcontainern und Applets von WebSphere Application Server auf einem Knoten gemeinsam genutzt wird.
- Alle Berechtigungen in den Dateien java.policy und client.policy werden allen Clientcontainern für WebSphere Application Server und allen Applets, die auf dem Knoten ausgeführt werden, erteilt.
- Die Datei client.policy ist keine Konfigurationsdatei, die vom Repository und dem Dateireplikationsservice verwaltet wird. Die Änderungen, die in dieser Datei vorgenommen werden, sind lokal und werden nicht für andere Maschinen repliziert.
- Die von WebSphere Application Server bereitgestellte Datei client.policy befindet sich im Pfad Profilstammverzeichnis/properties/client.policy.
- Wenn die Standardberechtigungen für einen Client (Verknüpfung der in den Dateien java.policy und client.policy definierten Berechtigungen) ausreichen, ist keine Aktion erforderlich. Die Standardrichtlinie für Clients wird automatisch ausgewählt.
- Wenn eine bestimmte Änderung an einigen Clientcontainern und Applets auf einem Knoten vorgenommen werden muss, ändern Sie die Datei client.policy mit dem Richtlinientool. Informationen zum Bearbeiten von Richtliniendateien finden Sie im Artikel Mit PolicyTool Richtliniendateien für die Java-2-Sicherheit verwenden. Änderungen an der Datei client.policy sind lokal für den Knoten.
Diese Datei enthält die folgenden Standardrechte:
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
grant codeBase "file:${was.install.root}/java/ext/*" {
permission java.security.AllPermission;
};
// JDK-Klassen
grant codeBase "file:${was.install.root}/java/ext/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/java/tools/ibmtools.jar" {
permission java.security.AllPermission;
};
grant codeBase "file:/QIBM/ProdData/Java400/jdk14/lib/tools.jar" {
permission java.security.AllPermission;
};
// WebSphere-Systemklassen
grant codeBase "file:${Installationsstammverzeichnis.für.WAS}/lib/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/plugins/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${Installationsstammverzeichnis.für.WAS}/classes/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${Installationsstammverzeichnis.für.WAS}/installedConnectors/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${user.install.root}/installedConnectors/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/installedChannels/-" {
permission java.security.AllPermission;
};
// J2EE-1.4-Berechtigungen für Client-Container-Anwendungen
// in $WAS_HOME/installedApps
grant codeBase "file:${user.install.root}/installedApps/-" {
/Berechtigungen des Anwendungsclients
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.io.FilePermission "*", "read,write";
permission java.util.PropertyPermission "*", "read";
};
// J2EE-1.4-Berechtigungen für Clientcontainer - erweiterte Codebasis der EAR-Datei
grant codeBase "file:${com.ibm.websphere.client.applicationclient.archivedir}/-" {
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.io.FilePermission "*", "read,write";
permission java.util.PropertyPermission "*", "read";
};
![[IBM i]](../images/iseries.gif)
grant codeBase "file:${was.install.root}/java/ext/*" {
permission java.security.AllPermission;
};
// JDK-Klassen
grant codeBase "file:${was.install.root}/java/ext/-" {
permission java.security.AllPermission;
};
// Verwendung zusätzlicher IBM JDK-Erweiterungen mit j9
grant codeBase "file:${was.install.root}/java/extj9/-" {
permission java.security.AllPermission;
};
// Verwendung von Sun und IBM Tools zulassen
grant codeBase "file:${was.install.root}/java/tools/-" {
permission java.security.AllPermission;
};
// WebSphere-Systemklassen
grant codeBase "file:${Installationsstammverzeichnis.für.WAS}/lib/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/plugins/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${Installationsstammverzeichnis.für.WAS}/classes/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${Installationsstammverzeichnis.für.WAS}/installedConnectors/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${user.install.root}/installedConnectors/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/installedChannels/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/util/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${user.install.root}/lib/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${user.install.root}/classes/-" {
permission java.security.AllPermission;
};
// J2EE-1.4-Berechtigungen für Client-Container-Anwendungen des Clientcontainers in $WAS_HOME/installedApps
grant codeBase "file:${user.install.root}/installedApps/-" {
/Berechtigungen des Anwendungsclients
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.io.FilePermission "*", "read,write";
permission java.util.PropertyPermission "*", "read";
};
// J2EE-1.4-Berechtigungen für Clientcontainer - erweiterte Codebasis der EAR-Datei
grant codeBase "file:${com.ibm.websphere.client.applicationclient.archivedir}/-" {
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.io.FilePermission "*", "read,write";
permission java.util.PropertyPermission "*", "read";
};
Alle Clientcontainer und Applets auf dem lokalen Knoten erhalten die aktualisierten Berechtigungen, wenn sie gestartet werden. Wenn einige Client-Container oder Applet auf einem Knoten Berechtigungen erfordern, die nicht als Standardberechtigungen in der Datei java.policy und in der Standarddatei client.policy definiert sind, aktualisieren Sie die Datei client.policy. Die fehlende Berechtigung löst die Ausnahme java.security.AccessControlException aus. Die fehlende Berechtigung ist in den Ausnahmedaten angegeben. Beispiel:
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar read)
![[IBM i]](../images/iseries.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
Stammverzeichnis_des_Anwendungsservers/Base/lib/mail-impl.jar read)
Die vorherigen beiden Zeilen des Beispielcodes sind hier nur zur besseren Lesbarkeit nicht, wie es eigentlich richtig wäre, in einer Zeile dargestellt.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
grant codebase "file:Installationsposition_des_Benutzerclients" {permission
java.io.FilePermission "C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar", "read"; };
![[IBM i]](../images/iseries.gif)
grant codebase "file:Installationsposition_des_Benutzerclients" {permission
java.io.FilePermission "Stammverzeichnis_des_Anwendungsservers/lib/mail-impl.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.
Wenn Sie die Richtliniendatei aktualisieren, müssen Sie den Browser und alle Clientanwendungen erneut starten.