Benutzer können Richtliniendateien für die Java™-2-Sicherheit
konfigurieren, so dass die
erforderliche Berechtigung der angegebenen WAS-Unternehmensanwendung erteilt wird.
Vorbereitende Schritte
Die Java-2-Sicherheit
bestimmt anhand mehrerer Richtliniendateien die Berechtigungen für die einzelnen Java-Programme.
Die Beschreibung
der Java-2-Sicherheitsrichtliniendateien
enthält eine Liste verfügbarer Richtliniendateien, die
von WebSphere Application Server unterstützt werden.
WebSphere
Application Server unterstützt zwei Arten von Richtliniendateien:
dynamische und statische Richtliniendateien. Statische Richtliniendateien geben die Standardberechtigungen
an. Dynamische Richtliniendateien geben die Berechtigungen einer Anwendung
an. Es werden sechs dynamische Richtliniendateien bereitgestellt:
Tabelle 1. Dynamische Richtliniendateien. In dieser Tabelle sind die dynamischen Richtliniendateien aufgelistet.Name der Richtliniendatei |
Beschreibung |
app.policy |
Enthält die Standardberechtigungen für alle Unternehmensanwendungen der Zelle. Anmerkung: Aktualisierungen der Datei app.policy gelten nur für die Unternehmensanwendungen, die
auf dem Knoten ausgeführt werden, zu dem die Datei app.policy gehört.
|
was.policy |
Enthält anwendungsspezifische Berechtigungen für eine WAS-Unternehmensanwendung. Diese Datei ist in einer
EAR-Datei enthalten. |
ra.xml |
Enthält Connector-spezifische Berechtigungen für eine WAS-Unternehmensanwendung. Diese Datei ist in einer
RAR-Datei enthalten. |
spi.policy |
Enthält Berechtigungen für SPI (Service Provider Interface)
oder in WebSphere Application Server eingebettete Ressourcen von Fremdanbietern. Der Standardinhalt
gewährt alle Berechtigungen. Aktualisieren Sie diese Datei, wenn die Zelle
mehr Schutz vor SPI in der Zelle benötigt. Diese Datei wird auf alle
in der Datei resources.xml definierten SPIs angewendet. |
library.policy |
Enthält Berechtigungen für die von Unternehmensanwendungen gemeinsam
benutzte Bibliothek. |
filter.policy |
Enthält die Liste der Berechtigungen, die aus der Datei
was.policy und der Datei app.policy in der Zelle herausgefiltert werden sollen. Dieser
Filter wird nur auf Die Dateien
was.policy und app.policy angewendet. |
In
WebSphere Application Server müssen
Anwendungen die entsprechenden, in der Datei
was.policy oder
app.policy angegebenen Threadberechtigungen
besitzen. Sind die Threadberechtigungen nicht angegeben, kann die Anwendung keine
Threads bearbeiten, und WebSphere Application Server löst eine Ausnahme des Typs
java.security.AccessControlException aus.
Die Datei
app.policy gilt nur für einen bestimmten Knoten. Wenn Sie die Berechtigungen
in einer Datei
app.policy ändern, müssen Sie die neue Threadrichtlinie auf den verbleibenden Knoten in dieselbe Datei einfügen.
Wenn Sie der Datei
app.policy Threadberechtigungen hinzufügen, müssen Sie WebSphere
Application Server erneut starten, damit die neuen Berechtigungen wirksam werden. Wenn Sie der Datei
was.policy jedoch Berechtigungen für eine bestimmte Anwendung hinzufügen, müssen Sie
WebSphere Application Server nicht erneut starten. Ein Administrator
muss den folgenden Code zur Datei
was.policy bzw.
app.policy für eine Anwendung hinzufügen, um Threads bearbeiten zu können:
grant codeBase "file:${application}" {
permission java.lang.RuntimePermission "stopThread";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
};
Wichtig: Das Schlüsselwort
"Signed By" wird in den folgenden Richtliniendateien nicht unterstützt: app.policy, spi.policy, library.policy, was.policy und filter.policy. Von den folgenden
Richtliniendateien wird das Schlüsselwort "Signed By"
jedoch unterstützt: java.policy, server.policy und
client.policy. Java Authentication and Authorization
Service (JAAS) wird in den Dateien app.policy, spi.policy, library.policy, was.policy
und filter.policy nicht unterstützt. Das
JAAS-Principal-Schlüsselwort wird jedoch in einer JAAS-Richtliniendatei unterstützt, wenn es von der
JVM-Systemeigenschaft java.security.auth.policy angegeben wird. Sie können die Berechtigungsrichtliniendateien in
java.security.auth.policy mit auth.policy.url.n=URL statisch definieren. URL steht hier für
die Adresse der Berechtigungsrichtlinie.
Vorgehensweise
- Ermitteln Sie die zu aktualisierende Richtliniendatei.
Tipp: Wählen Sie die Richtliniendatei mit dem kleinsten Geltungsbereich aus.
Auf diese Weise vermeiden Sie, Java-Programmen
Sonderberechtigungen zu erteilen, und schützen Ihre Ressourcen. Aktualisieren Sie
bevorzugt die Datei ra.xml oder was.policy und nicht die Datei
app.policy.
Verwenden Sie an Stelle von ${Anwendung}-Symbolen
spezifische Komponentensymbole ($(EJB-Komponente), ${Webkomponente}, ${Connector-Komponente}
und ${JARs}). Aktualisieren Sie an Stelle statischer Richtliniendateien dynamische Richtliniendateien.
Fügen Sie alle Berechtigungen, die der WAS-Unternehmensanwendung in der Zelle auf keinen
Fall gewährt werden dürfen, zur Datei filter.policy hinzu. Weitere Informationen hierzu finden
Sie im Artikel Berechtigungen in der Datei filter.policy.
- Starten Sie die WAS-Unternehmensanwendung erneut.
Ergebnisse
Die erforderliche Berechtigung wird der angegebenen WAS-Unternehmensanwendung
gewährt.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
Beispiel
Wenn eine WebSphere Application Server-Unternehmensanwendung in einer Zelle Berechtigungen benötigt,
müssen manche dynamischen Richtliniendateien aktualisiert werden.
Eine fehlende Berechtigung äußert sich durch die Ausnahme java.security.AccessControlException.
Die fehlende Berechtigung ist in den folgenden Ausnahmedaten angegeben.
Diese Daten erscheinen in einer Zeile, se wurden hier aber zur besseren Lesbarkeit auf mehrere Zeilen aufgeteilt.
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
${was.install.root}/java/ext/mail.jar read)
Wenn ein Java-Programm diese Ausnahme
empfängt und das Hinzufügen dieser Berechtigung vertretbar ist, fügen
Sie eine Berechtigung zur entsprechenden dynamischen Richtliniendatei hinzu.
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
grant codeBase "file:Installationsposition_des_Benutzerclients" {
permission java.io.FilePermission
"${was.install.root}$(/)java$(/)jre$(/)lib$(/)ext$(/)mail.jar", "read";
};
Die obigen Informationen wurden zur besseren Lesbarkeit auf mehrere Zeilen aufgeteilt. Geben Sie die Berechtigung in einer Zeile ein.
Bevor Sie sich entschließen, eine
Berechtigung hinzuzufügen, lesen Sie den Artikel Zugriffssteuerungsausnahme für Java-2-Sicherheit.