Agent Domino walczy z bezpieczeństwem Java przy użyciu słoika innej firmy w / jvm / lib / ext

Mam problem z zabezpieczeniami Java. Mam agenta, który używa pdfbox-1.7.1.jar do odszyfrowania pliku PDF, którego hasło znam. Jar został umieszczony w / jvm / lib / ext zarówno na serwerze, jak i na moim kliencie, i dostaję to małe piękno śledzenia stosu:

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)

Zarówno klient, jak i serwer używają 8.5.3. Poziom zabezpieczeń agenta jest ustawiony na 3. Umieszczenie słoików w samym agencie nie pomaga. Sygnatariusz agenta jest pełnym administratorem na serwerze. Wydaje się, że wyjątek bezpieczeństwa wskazuje na „insertProviderAt”

To właśnie próbowałem:

kładzenie

grant {
permission java.security.AllPermission;
}

rozwiązuje mój problem, ale nigdy nie dostanę tego przez mojego orła.

Próbuję ograniczyć zakres uprawnień tylko do bazy danych, ale tutaj do dokumentacji:http://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html tak naprawdę nie powiedział mi, jak wprowadzić bazę danych notatek.

Przejrzałem artykuł Stephana Wissela na temat bezpieczeństwa Xpages Java tutaj:http://www.wissel.net/blog/d6plinks/SHWL-8JYAT5 i wstawiłem następujące elementy do mojego pliku /jvm/lib/security/java.policy:

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

ale to też nie zadziałało, przypuszczam, ponieważ moja składnia codeBase nie jest poprawna dla bazy danych nsf, ale tylko dla stron internetowych.

Staram się także ograniczyć uprawnienia do tego, co jest naprawdę potrzebne, i patrząc na dokumentację tutaj:http://docs.oracle.com/javase/1.4.2/docs/guide/security/permissions.html

sugeruje, że muszę coś zrobić

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

ale nie mam pojęcia, jakie powinno być {imię}.

Przeczytałem też artykuł Mikkela na temathttp://lekkimworld.com/2013/06/20/java_in_notes_domino_explained_on_java_security_and_how_it_relates_to_notes_domino.html

ale mój mózg smażył się w połowie strony. W szczególności nie jestem pewien, jak faktycznie wdrożyć tę metodę. Czy możesz trzymać mnie za rękę i poprowadzić, proszę?

Kiedy już to robię, czy mam rację zakładając, że za każdym razem, gdy umieszczam nowe słoiki w / jvm / lib / ext, wszystko, co muszę zrobić, to

tell http restart

aby przeładować maszynę JVM? Zakładam, że Domino używa pojedynczej maszyny JVM dla Xpages, Agenci, a zadanie HTTP, jest właściwe.

Czy mam rację, że muszę zrestartować serwer, aby nowe zasady w java.policy były skuteczne?

Jakieś pomysły?

questionAnswers(1)

yourAnswerToTheQuestion