Anwendungen für die Java-2-Sicherheit die Datei "was.policy" hinzufügen

Wenn eine Anwendung auf Ressourcen zugreift, die weitergehende Berechtigungen erfordern, als in der Standarddatei app.policy gewährt werden, benötigt sie unter Umständen eine Datei was.policy.

Informationen zu diesem Vorgang

Wenn die Java™-2-Sicherheit für einen WebSphere Application Server aktiviert ist, durchlaufen alle Anwendungen, die in WebSphere Application Server ausgeführt werden, eine Sicherheitsprüfung, bevor sie auf Systemressourcen zugreifen können. Wenn eine Anwendung auf Ressourcen zugreift, die weitergehende Berechtigungen erfordern, als in der Standarddatei app.policy gewährt werden, benötigt sie unter Umständen eine Datei was.policy. Standardmäßig liest die Produktsicherheit eine Datei app.policy, die sich auf jedem Knoten befindet, und gewährt allen Anwendungen die in der Datei app.policy enthaltenen Berechtigungen. Fügen Sie zusätzlich benötigte Berechtigungen zur Datei was.policy hinzu. Die Datei was.policy ist nur erforderlich, wenn eine Anwendung zusätzliche Berechtigungen benötigt.

Die Standardrichtliniendatei für alle Anwendungen ist in der Datei app.policy angegeben. Diese Datei wird von der Produktsicherheit bereitgestellt, gilt für alle Anwendungen und sollte nicht geändert werden. Fügen Sie der Datei was.policy alle für eine Anwendung erforderlichen neuen Berechtigungen hinzu.

Die von WebSphere Application Server bereitgestellte Datei app.policy befindet sich an der Position Stammverzeichnis_des_Anwendungsservers/config/cells/profile/Profilname/config/Zellenname/nodes/Knotenname/app.policy. Den Inhalt der Datei app.policy sehen Sie im folgenden Beispiel:

Achtung: Im folgenden Codebeispiel sind die beiden Berechtigungen, die JavaMail benötigt, nur zu Darstellungszwecken auf zwei Zeilen aufgeteilt. Sie müssen die Berechtigung in einer Zeile eingeben.
// Die folgenden Berechtigungen gelten für alle Komponenten der Anwendung.

grant codeBase "file:${application}" {
   // Folgendes ist für JavaMail erforderlich

  permission java.io.FilePermission "
        ${was.install.root}${/}lib${/}activation-impl.jar",
"read";

  permission java.io.FilePermission "
        ${was.install.root}${/}lib${/}mail-impl.jar","read";

  };
   // Die folgenden Berechtigungen gelten für alle .jar-Dateien des Diensprogramms (nicht die
   // EJB-JAR-Dateien) in der Anwendung.
grant codeBase "file:${JARs}" {
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

// Die folgenden Berechtigungen gelten für die Connector-Ressourcen in der Anwendung.
grant codeBase "file:${Connector-Komponente}" {
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

// Die folgenden Berechtigungen gelten für alle Webmodule (.war-Dateien)
// in der Anwendung.
grant codeBase "file:${Webkomponente}" {
  permission java.io.FilePermission "${Pfad.des.WAS-Moduls}${/}-", "read, write";
       // "Pfad.des.WAS-Moduls" steht hier für den Pfad, in dem das Webmodul
       // installiert ist. Weitere Symbole finden Sie im Abschnitt "Konzepte für
       // dynamische Richtlinien".
  permission java.lang.RuntimePermission "loadLibrary.*";
  permission java.lang.RuntimePermission "queuePrintJob";
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

// Die folgenden Berechtigungen gelten für alle EJB-Module der Anwendung.
grant codeBase "file:${EJB-Komponente}" {
 permission java.lang.RuntimePermission "queuePrintJob";
 permission java.net.SocketPermission "*", "connect";
 permission java.util.PropertyPermission "*", "read";
};

Wenn für eine Anwendung oder Module einer Anwendung zusätzliche Berechtigungen erforderlich sind, verwenden Sie die Datei was.policy für diese Anwendung. Verwenden Sie beispielsweise codeBase für ${Anwendung}, und fügen Sie erforderliche Berechtigungen hinzu, um der gesamten Anwendung zusätzliche Berechtigungen einzuräumen. In ähnlicher Weise können Sie mit codeBase für ${Webkomponente} und ${EJB-Komponente} allen Webmodulen und EJB-Modulen der Anwendung zusätzliche Berechtigungen gewähren. Sie können, wie im folgenden Beispiel gezeigt, jedem Modul weitere Berechtigungen zuordnen (Datei .war oder Datei .jar).

Dieses Beispiel veranschaulicht, wie zusätzliche Berechtigungen für eine Anwendung in der Datei was.policy hinzugefügt werden:

Achtung: Im folgenden Codebeispiel ist die Berechtigung für das EJB-Modul nur zu Darstellungszwecken auf zwei Zeilen aufgeteilt. Sie müssen die Berechtigung in einer Zeile eingeben.
// Einem Webmodul zusätzliche Berechtigungen erteilen
grant codeBase " file:aWebModule.war" {
 permission java.security.SecurityPermission "printIdentity";
};

// Gewähren von zusätzlichen Berechtigungen für ein EJB-Modul
grant codeBase "file:aEJBModule.jar"  {
    permission java.io.FilePermission "
       ${user.install.root}${/}bin${/}DefaultDB${/}-", "read,write,delete";   
    // ${Installationsstammverzeichnis.für.Benutzer} ist hier die Systemeigenschaft,
    // deren Wert im Stammverzeichnis_des_Anwendungsservers enthalten ist. };

Wenn Sie eine Datei was.policy für Ihre Anwendung verwenden möchten, führen Sie die folgenden Schritte aus:

Vorgehensweise

  1. Erstellen Sie mit dem Richtlinientool eine Datei was.policy. Weitere Informationen zur Verwendung des Richtlinientools finden Sie im Artikel Mit PolicyTool Richtliniendateien für die Java-2-Sicherheit verwenden.
  2. Fügen Sie der Datei was.policy mit dem Richtlinientool die erforderlichen Berechtigungen hinzu.
  3. Nehmen Sie die Datei was.policy in die EAR-Datei der Anwendung in das Verzeichnis META-INF auf. Aktualisieren Sie die Anwendungsdatei (EAR) mit der neu erstellten Datei was.policy. Verwenden Sie dazu den Befehl jar.
  4. Stellen Sie sicher, dass die Datei was.policy eingefügt wurde, und starten Sie dann ein Assembliertool.
    [IBM i][z/OS]Anmerkung: Es ist kein Assembliertool verfügbar. Verwenden Sie ein Assembliertool auf einer anderen Plattform, wie z. B. Linux Intel or Windows.
  5. Vergewissern Sie sich, dass die Datei was.policy in der Anwendung syntaktisch korrekt ist. Klicken Sie im Assembliertool mit der rechten Maustaste auf ein Unternehmensanwendungsmodul. Klicken Sie dann auf Run Validation.

Ergebnisse

Wenn die Java-2-Sicherheit aktiviert ist, kann jetzt eine Anwendungs-EAR-Datei ausgeführt werden.

Beispiel

Dieser Schritt muss ausgeführt werden, damit Anwendungen bei aktivierter Java-2-Sicherheit ordnungsgemäß ausgeführt werden können. Wenn die Datei was.policy nicht erstellt wurde oder nicht die erforderlichen Berechtigungen enthält, greift die Anwendung unter Umständen nicht auf Systemressourcen zu.

Fehlende Berechtigungen äußern sich durch die Ausnahme java.security.AccessControlException. Die fehlende Berechtigung ist in den Ausnahmedaten angegeben. Beispiel:

[IBM i][z/OS]
java.security.AccessControlException: access denied (java.io.FilePermission 
${was.install.root}/java/ext/mail.jar read)
Wenn ein Anwendungsprogramm diese Ausnahme empfängt und das Hinzufügen dieser Berechtigung vertretbar ist, fügen Sie der Datei was.policy die Berechtigung hinzu. Beispiel: [IBM i][z/OS]
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.

Nächste Schritte

Installieren Sie die Anwendung.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_waspolicy
Dateiname:tsec_waspolicy.html