Autor Thema: Java Agent und Logging mit SLF4J  (Gelesen 2690 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Java Agent und Logging mit SLF4J
« am: 08.02.18 - 07:51:56 »
I schlage mich gerade mit einem Java Agenten rum, der eine 3rd-party library verwendet. Diese lib verwendet slf4j zum loggen

Code
private static final Logger		LOG				= LoggerFactory.getLogger(AccountBuilder.class);

Soweit nicht ungewöhnliches. In einem DOTS task funktioniert der exakt gleiche Code problemlos. Aber in einem Java Agenten erhalte ich folgende Fehlermeldung

Code
[119C:002F-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error: Caused by: 
[b][119C:0030-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error: java.security.AccessControlException: Access denied ("java.lang.RuntimePermission" "getClassLoader")[/b]
[119C:0032-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at java.security.AccessController.throwACE(AccessController.java:176)
[119C:0034-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at java.security.AccessController.checkPermissionHelper(AccessController.java:236)
[119C:0036-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at java.security.AccessController.checkPermission(AccessController.java:371)
[119C:0038-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at java.lang.SecurityManager.checkPermission(SecurityManager.java:562)
[119C:003A-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at lotus.notes.AgentSecurityManager.checkPermission(Unknown Source)
[119C:003C-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:784)
[119C:003E-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at org.apache.logging.log4j.util.LoaderUtil.findUrlResources(LoaderUtil.java:192)
[119C:0040-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at org.apache.logging.log4j.util.LoaderUtil.findResources(LoaderUtil.java:183)
[119C:0042-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at org.apache.logging.log4j.util.PropertiesUtil.<init>(PropertiesUtil.java:90)
[119C:0044-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  at org.apache.logging.log4j.util.PropertiesUtil.<clinit>(PropertiesUtil.java:36)
[119C:0046-2C58] 02/08/2018 07:10:00 AM  Agent Manager: Agent  error:  ... 15 more

Fällt also beim Laden der Logger Klasse mangels Berechtigung auf die Nase.
Der Agent läuft mit Option 3 ( restricted with full admin access )

Ich habe in die java.security testweise einmal

Code
grant {
permission java.security.AllPermission;
};

eingetragen; also die große Keule.

Server wurde neu gestartet. Trotzdem funktioniert es nicht.
Hat einen solchen "ungewöhnlichen" Stunt schon einmal jemand erfolgreich absolviert? Ich meine, Logging ist ja etwas vollkommen neues.

Ach ja, ich verwende FP10 ( ja, ja, ich weiß ... )

Auf StackOverflow gibt es sowas ähnliches https://stackoverflow.com/questions/39075349/lotus-notes-not-allowed-to-access-system-properties-file

Auch das verhält sich bei mir so, wie dort beschrieben. Ich will nicht hoffen, daß es da eine generelle Einschränkung für Java Agenten gibt. Nicht mehr 2018 ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ERR

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Männlich
Re: Java Agent und Logging mit SLF4J
« Antwort #1 am: 08.02.18 - 11:16:09 »
Hallo eknori,

ich bin nicht sicher ob das folgende hilft, aber einen Versuch ist es doch bestimmt wert:

Code
grant {
permission java.lang.RuntimePermission "getClassLoader";
};

Bei uns ist so etwas ähnliches auf diesem Weg gelöst worden.

MFG
ERR

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Java Agent und Logging mit SLF4J
« Antwort #2 am: 08.02.18 - 11:19:23 »
Danke, hatte ich schon probiert. Ohne Erfolg

Interessant ist, daß es funktioniert, wenn der Aufruf direkt im Agenten erfolgt. In meinem wird der logger aber in einer als Archive eingebundenen .jar instantiiert. Und das mag der Agent nicht. In DOTS ist das kein problem.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz