Агент Domino борется с безопасностью Java, используя сторонний jar в / jvm / lib / ext

Я столкнулся с проблемой безопасности Java. У меня есть агент, который использует pdfbox-1.7.1.jar для расшифровки PDF, пароль которого я знаю. Файл jar был помещен в / jvm / lib / ext как на сервере, так и на моем клиенте, и я получил небольшую красоту трассировки стека:

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)

И Клиент, и Сервер используют 8.5.3. Уровень безопасности агента установлен на 3. Помещение банок в самого агента не помогает. Подписывающим агентом является полный админ на сервере. Исключение безопасности, кажется, указывает наinsertProviderAt»

Вот что я попробовал:

сдачи

grant {
permission java.security.AllPermission;
}

решает мою проблему, но я никогда не пройду мимо этого зоркого администратора.

Я пытаюсь уменьшить область разрешения только для базы данных, но документация здесь:http://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html действительно не сказал мне, как ввести базу данных заметок.

Я посмотрел на Стефана ВисселяСтатья о безопасности Xpages Java здесь:http://www.wissel.net/blog/d6plinks/SHWL-8JYAT5 и вставил следующее в мой файл /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;
};

но это тоже не сработало, я полагаю, потому что мой синтаксис codeBase недействителен для базы данных nsf, но только для веб-страниц.

Я также пытаюсь уменьшить Разрешение до того, что действительно необходимо, и смотрю на документацию здесь:http://docs.oracle.com/javase/1.4.2/docs/guide/security/permissions.html

подразумевает, что я должен сделать что-то вроде

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

но я понятия не имею, каким должно быть {имя}.

Я тоже читаю Миккельстатья оhttp://lekkimworld.com/2013/06/20/java_in_notes_domino_explained_on_java_security_and_how_it_relates_to_notes_domino.html

но мой мозг зажарился примерно в середине страницы. В частности, я не уверен, как на самом деле реализовать этот метод. Не могли бы вы взять меня за руку и провести меня, пожалуйста?

Пока яЯ правильно понимаю, что всякий раз, когда я помещаю новые jar-файлы в / jvm / lib / ext, все, что мне нужно сделать, это

tell http restart

перезагрузить JVM? Я предполагаю, что Domino использует одну JVM для Xpages, Agents и HTTP Task, это правильно.

Кроме того, я прав, что мне нужно перезапустить сервер для любых новых политик в java.policy, чтобы быть эффективными?

Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос