In unserem Podcast diskutiert Thomas Bahn über Nutzen, Anwendungen und Erfahrungen aus den Bereichen Chatbots und Künstliche Intelligenz. Mehr erfahren

Java-Berechtigungen in Notes und Domino vergeben (Updates: wichtige Änderungen mit V11 und V12.0.1!)

von Thomas,
assono GmbH, Standort Kiel,

Nachdem ich in letzter Zeit einige Clients und Server aktualisiert habe (V11 - ich bin schon da!), ist mir ein altes Thema wieder eingefallen. Na gut, ich habe mich wegen eines Fehlers wieder mit dem Thema beschäftigen müssen und gehe davon aus, dass ich es wohl damals falsch gemacht habe. Aber worum geht es überhaupt?

HCL Notes und Domino haben eine hervorragende Verwaltung von Berechtigungen, inklusive elektronischer Signaturen und Ausführungskontrolle. Java hat ebenfalls etwas in der Art mit Permissions und Code-Signaturen. Wenn ich nun Java in Notes oder Domino ausführe - sei es als Agent oder in Form von XPages - ziehen beide Systeme - nacheinander.

Im Fall eines Java-Agenten in einer Notes-Datenbank auf dem Domino-Server wird erst einmal alles geprüft von Domino-Seite. Wenn es passt, läuft er los. Und wenn er dann eine kritische Operation durchführen will, wird Java-seitig geprüft, ob er das auch darf, also eine entsprechende Permission hat.

Vieles ist dabei schon gut voreingestellt, aber manches eben auch nicht. Gerade wenn man externe Bibliotheken benutzt (in Form von JAR-Archiven), braucht man häufig etwas mehr Rechte.

Dafür gibt es in Java die java.policy-Datei, die im {java.home}/lib/security-Verzeichnis liegt.

Noch einmal: Und wo ist jetzt das Problem?

Diese Datei gehört zur Java-Distribution dazu und wird bei Updates, also neuen Hauptversionen, teilweise bei Fix Packs und immer bei JVM-Patches ersetzt. Und danach fehlen die manuell erweiterten Berechtigungen wieder.

Aber es gibt eine einfache Lösung.

In der java.security-Datei im gleichen Ordner werden nämlich bis zu drei Orte definiert, die die JVM nacheinander einliest und für die Vergabe von Permissions nutzt:

policy.url.1=file:${java.home}/lib/security/java.policy
policy.url.2=file:${java.home}/lib/security/java.pol
policy.url.3=file:///${user.home}/.java.policy

Und die Lösung ist nun, die Ausweitung der Berechtigungen nicht in die java.policy-Datei, sondern in eine Datei java.pol (im gleichen Verzeichnis) zu schreiben. Diese soll bei Updates nämlich erhalten bleiben.

Update 25.03.2020: Wichtige Änderungen mit V11

Der tolle Urs Meli von der Belsoft Collaboration AG wies mich eben darauf hin, dass HCL bei Notes und Domino V11 etwas geändert hat, so dass das hier Beschriebene nicht mehr funktioniert.

Aus der java.security eines Domino V10-Servers:

policy.url.1=file:${java.home}/lib/security/java.policy
policy.url.2=file:${java.home}/lib/security/java.pol
policy.url.3=file:///${user.home}/.java.policy

Und jetzt von einem Domino V11-Server:

policy.url.1=file:${java.home}/lib/security/java.policy
policy.url.2=file:${user.home}/.java.policy

Und es ist dabei egal, ob es ein von V10 auf V11 aktualisierter oder ein neu installierter Server ist und gilt sowohl für Windows, als auch für Linux.

Der Notes V11-Client ist genauso davon betroffen.

Die Änderung dürfte mit dem Wechsel von der IBM JVM zur Open JVM 8 zusammenhängen.

Bleibt dann also nur die .java.policy im Home-Verzeichnis des Benutzers, unter dem der Domino-Server oder Notes-Client läuft. Das ist leider weniger eindeutig und "weiter weg", so dass man z. B. für die Backup-Konfiguration extra daran denken darf.

Weiteres, kleines Update

Per Henrik Lausten hatte Anfang Januar schon darüber geschrieben: Domino 11.0 does not support java.pol

Update für Domino V12.0.1

Mit der Domino-Version 12.0.1 ist die zwischenzeitlich entfernte Option zurückgekehrt, Anpassungen in der jvm/lib/security/java.pol vorzunehmen:

Ausschnitt aus der Datei java.security

# The default is to have a single system-wide policy file,
# and a policy file in the user's home directory.
policy.url.1=file:${java.home}/lib/security/java.policy
policy.url.2=file:${java.home}/lib/security/java.pol
policy.url.3=file:${user.home}/.java.policy

Quellen:

Fachbeitrag HCL Notes HCL Domino Java Administration Für Entwickler

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 416
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de