Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Logging mit Java ohne Notes Logging API
kriede:
Hallo Thomas,
normalerweise wird LogJ benutzt, um in eine Datei zu loggen, und genau hier liegt die Ursache für die AccessControlException: Schreiben in Dateien ist in der Standardeinstellung für Java-Agenten nicht erlaubt. Es gibt drei Wege, dies zu ändern:
1. java.policy file
2. Server-Dokument
3. Agent-Settings
Weg 1 ist nicht empfehlenswert, da diese Einstellungen dann für den gesamten Server und alle Benutzer gelten und so bei unvorsichtigem Vorgehen die Sicherheitsmechanismen von Java unterwandert werden und somit der Server potentiell verwundbar wird.
Weg 2 erlaubt, bestimmten Usern, z.B. dem Agent-Signer, mehr Rechte zu gewähren. Dies ist ein typisches Vorgehen, um Agenten die nötigen Rechte zuzuteilen. Siehe Server-Dokument -> Security -> Programmability Restrictions -> Run unrestricted methods and operations: Benutzer oder Gruppe angeben, die unbeschränkten Zugriff auf das OS erhalten soll.
Weg 3 ist noch spezieller und ermöglicht eben nur bestimmten Agenten, Sonderrechte zu erteilen. Siehe Agent-Settings -> zweites Tab (Security) -> Set runtim security level -> Allow restricted operations.
Soweit ich mich erinnere zieht diese Einstellung nur in Kombination mit Möglichkeit 2, am besten mal ausprobieren.
Im Rahmen einer SAP-Integration über WebServices habe Ich Log4J mit diesen Einstellungen bereits erfolgreich und produktiv in Lotus Domino eingesetzt, ohne Manipulation der java.policy. Falls Du noch Fragen dazu hast, stelle sie einfach hier in diesem Thread.
Falls Du über einen eigenen Appender in eine Notes-Datenbank loggen möchtest, dann ist das alles nicht nötig, denn Zugriff auf Notes-Datenbanken hat jeder Agent in jedem Fall (solange er über die ACL der Datenbank berechtigt ist).
Ich hoffe, das hilft Dir weiter.
Gruß
Kurt
Boost:
Danke für die Hinweise.
.policy fällt flach, denn wenn die DB an den Kunden geht, müsste ihm das jemand erklären und der Kunde müsste es verstehen.
--- Zitat von: kriede am 14.07.06 - 01:26:40 ---2. Server-Dokument
Weg 2 erlaubt, bestimmten Usern, z.B. dem Agent-Signer, mehr Rechte zu gewähren. Dies ist ein typisches Vorgehen, um Agenten die nötigen Rechte zuzuteilen. Siehe Server-Dokument -> Security -> Programmability Restrictions -> Run unrestricted methods and operations: Benutzer oder Gruppe angeben, die unbeschränkten Zugriff auf das OS erhalten soll.
--- Ende Zitat ---
Das funktioniert serverseitig, richtig?
Wenn ja, die gleiche Einschränkung wie oben, zusätzlicher Administrationsaufwand ist nicht zumutbar.
--- Zitat von: kriede am 14.07.06 - 01:26:40 ---
3. Agent-Settings
Weg 3 ist noch spezieller und ermöglicht eben nur bestimmten Agenten, Sonderrechte zu erteilen. Siehe Agent-Settings -> zweites Tab (Security) -> Set runtim security level -> Allow restricted operations.
Soweit ich mich erinnere zieht diese Einstellung nur in Kombination mit Möglichkeit 2, am besten mal ausprobieren.
--- Ende Zitat ---
Funktioniert das auch mit Java Script Libraries?
Ich habe keine Einstllungen gesehen.
Ich brauche Threads die mit einer GUI aufgerufen werden, und nicht von Agenten.
--- Zitat von: kriede am 14.07.06 - 01:26:40 ---
Falls Du über einen eigenen Appender in eine Notes-Datenbank loggen möchtest, dann ist das alles nicht nötig, denn Zugriff auf Notes-Datenbanken hat jeder Agent in jedem Fall (solange er über die ACL der Datenbank berechtigt ist).
--- Ende Zitat ---
Könntest du genauer erklären, was du mit Appender meinst?
flaite:
--- Zitat von: Boost am 19.07.06 - 16:05:49 ---Könntest du genauer erklären, was du mit Appender meinst?
--- Ende Zitat ---
--- Zitat ---In log4j speak, an output destination is called an appender.
--- Ende Zitat ---
Du kannst einen eigenen Appender schreiben. Oder vielleicht gibts schon einen fertigprogrammierten Appender, der in Notes-Datenbanken schreibt.
Domino Java hat doch einen Tipp genannt. Hilft das nicht weiter?
--- Zitat ---Ansonsten darf ich (in aller Bescheidenheit) die Adresse http://www.domino-java.com empfehlen. Dort gibt es einen Domino-tauglichen Wrapper für log4j, der dazu noch selbst-konfigurierend ist (bei log4j eine grosse Hilfe).
--- Ende Zitat ---
Boost:
Erst mal danke für dien Hinweis auf den Wrapper.
Aber Log4j ist teil des Apache Projekts, d.h. ein eigenes Paket, der Wrapper ebenso.
Das kann ich aber leider nicht bundeln und mitschicken, sodern ich dürfte nur einen Link geben mit dem Hinweis "Bitte dort runterladen".
Dann müsste das Paket noch in die Notes JVM kommen.
Deshalb werde ich Log4j und den Wrapper nicht verwenden.
flaite:
--- Zitat von: Boost am 20.07.06 - 11:50:23 ---Aber Log4j ist teil des Apache Projekts, d.h. ein eigenes Paket, der Wrapper ebenso.
Das kann ich aber leider nicht bundeln und mitschicken, sodern ich dürfte nur einen Link geben mit dem Hinweis "Bitte dort runterladen".
Dann müsste das Paket noch in die Notes JVM kommen.
--- Ende Zitat ---
Wie jetzt runterladen? Man muß einfach den Admins die entsprechenden jars aushändigen und dann können sie diese ins <Notes-Programm>\jvm\lib\ext Verzeichnis der Domino JVM tun. Man kann dafür sogar eine eigene Routine für schreiben, falls dies vowe.net lesende Systemadministratoren überfordern sollte ;D
So etwas vorzuschlagen, war nie ein Problem.
Vielleicht liegt das daran, dass ichseit Jahren aus-weiss-nicht-warum Gründen nur noch Kunden aus dem sehr ITisierten Banken- und Versicherungsumfeld habe. Bei den anderen kommt das dann später auch.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln