Domino Agent, der mit der Java-Sicherheit zu kämpfen hat, verwendet die JAR-Datei eines Drittanbieters in / jvm / lib / ext

Ich habe ein Java-Sicherheitsproblem. Ich habe einen Agenten, der die pdfbox-1.7.1.jar verwendet, um eine PDF-Datei zu entschlüsseln, deren Passwort ich kenne. Die JAR-Datei wurde sowohl auf dem Server als auch auf meinem Client in / jvm / lib / ext abgelegt, und ich erhalte die kleine Schönheit eines Stack-Trace:

java.lang.SecurityException
at java.lang.SecurityManager.checkPermission(SecurityManager.java:582)
at COM.ibm.JEmpower.applet.AppletSecurity.checkSecurityPermission(AppletSecurity.java:1332)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1613)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1464)
at java.lang.SecurityManager.checkSecurityAccess(SecurityManager.java:1725)
at java.security.Security.insertProviderAt(Security.java:190)
at java.security.Security.addProvider(Security.java:210)
at org.apache.pdfbox.pdmodel.encryption.SecurityHandlersManager.getInstance(SecurityHandlersManager.java:146)
at org.apache.pdfbox.pdmodel.PDDocument.openProtection(PDDocument.java:1365)
at org.apache.pdfbox.pdmodel.PDDocument.decrypt(PDDocument.java:798)
at com.magerman.hremail.prep1docc.PDFDecryptor.decrypt(Unknown Source)
at com.magerman.hremail.prep1docc.MetaAttachment.decrypt(Unknown Source)
at com.magerman.hremail.prep1docc.MetaDocContainingAttachments.removePasswordOfPDFAttachments(Unknown Source)
at com.magerman.hremail.prep1docc.EPDFPreparerFactory.generateAttachmentsTriggerDocs(Unknown Source)
at com.magerman.hremail.prep1docc.EPDFPreparerFactory.run(Unknown Source)
at com.magerman.hremail.prep1docc.BaseClass.NotesMain(Unknown Source)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)

Sowohl Client als auch Server verwenden 8.5.3. Die Sicherheitsstufe des Agenten ist auf 3 festgelegt. Das Einfügen der Gläser in den Agenten selbst hilft nicht. Der Unterzeichner des Agenten ist der vollständige Administrator auf dem Server. Die Sicherheitsausnahme scheint auf "insertProviderAt" zu verweisen

Das habe ich versucht:

Putten

grant {
permission java.security.AllPermission;
}

löst mein Problem, aber ich werde das nie hinter meinen Adleraugen-Administrator bringen.

Ich versuche, den Umfang der Berechtigung auf die Datenbank zu beschränken, aber die Dokumentation hier:http://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html habe mir nicht wirklich gesagt, wie man eine Notizen-Datenbank eingibt.

Ich habe den Artikel von Stephan Wissel über die Sicherheit von Xpages Java hier gelesen:http://www.wissel.net/blog/d6plinks/SHWL-8JYAT5 und fügte Folgendes in meine Datei /jvm/lib/security/java.policy ein:

grant codeBase "xspnsf://server:0/development/hre-mail/hre-mail2_0/hre-mail_(2_0)_dev.nsf/-" { 
permission java.security.AllPermission;
};

aber das hat auch nicht geklappt, ich nehme an, weil meine codeBase-syntax nicht für die nsf-datenbank gültig ist, sondern nur für webseiten.

Ich versuche auch, die Berechtigung auf das zu reduzieren, was wirklich benötigt wird, und schaue in die Dokumentation hier:http://docs.oracle.com/javase/1.4.2/docs/guide/security/permissions.html

impliziert, dass ich so etwas tun muss

java.security.SecurityPermission "insertProvider.{name}"

aber ich habe keine ahnung, wie {name} sein soll.

Ich habe auch Mikkels Artikel über gelesenhttp://lekkimworld.com/2013/06/20/java_in_notes_domino_explained_on_java_security_and_how_it_relates_to_notes_domino.html

aber mein Gehirn hat ungefähr in der Mitte der Seite gebraten. Insbesondere bin ich nicht sicher, wie diese Methode tatsächlich implementiert werden soll. Könnten Sie meine Hand halten und mich bitte durchlaufen lassen?

Während ich dabei bin, gehe ich zu Recht davon aus, dass alles, was ich tun muss, wenn ich neue Gläser in / jvm / lib / ext lege, a

tell http restart

soll die JVM neu geladen werden? Ich gehe davon aus, dass Domino eine einzige JVM für Xpages, Agents und die HTTP-Task verwendet.

Habe ich auch Recht, dass ich den Server neu starten muss, damit neue Richtlinien in java.policy wirksam werden?

Irgendwelche Ideen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage