• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Решено Java агент по расписанию

T

TAPAKAHATOP

Написал агентик который отправляет информацию из документа на ActiveMq сервер.
С локальной машины все работает отлично:
Тыкнул Run- документик отправился в active.
А вот после перевода агента в режим "по расписанию", возникают проблемы:
Не может создать поднять коннект к серверу.
Может быть кто сталкивался с подобным?
Все библиотеки, которые задействованы в агенте, находятся в базе данных с которой он запускается.
 
T

TAPAKAHATOP

Stacktrace 1
Код:
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') printing: MQ publisher start
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') printing: MSG in Queue 104, runloop
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: Could not create wire format factory for: default, reason: java.lang.ExceptionInInitializerError
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:242)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:255)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:227)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:175)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at rni.lotus.systemintegrator.ActiveMQDataSender.sendTopicTextMessage(Unknown Source)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at JavaAgent.NotesMain(Unknown Source)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at lotus.domino.AgentBase.runNotes(Unknown Source)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at lotus.domino.NotesThread.run(Unknown Source)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: Caused by:
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: java.io.IOException: Could not create wire format factory for: default, reason: java.lang.ExceptionInInitializerError
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.transport.TransportFactory.createWireFormatFactory(TransportFactory.java:227)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.transport.TransportFactory.createWireFormat(TransportFactory.java:211)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.java:140)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.java:51)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:80)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:240)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  ... 7 more
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: Caused by:
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: java.lang.ExceptionInInitializerError
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.transport.TransportFactory.createWireFormatFactory(TransportFactory.java:224)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  ... 12 more
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: Caused by:
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key access_properties_not_allowed
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.util.MissingResourceException.<init>(MissingResourceException.java:50)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.util.ResourceBundle.getObject(ResourceBundle.java:400)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.util.ResourceBundle.getString(ResourceBundle.java:421)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at lotus.notes.JavaString.getString(Unknown Source)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at lotus.notes.AgentSecurityManager.checkPropertiesAccess(Unknown Source)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.beans.PropertyEditorManager.setEditorSearchPath(PropertyEditorManager.java:140)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.util.IntrospectionSupport.<clinit>(IntrospectionSupport.java:55)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.lang.J9VMInternals.initializeImpl(Native Method)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
30.11.2015 16:39:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  ... 13 more

После небольшого копания, нашел совет изменить параметры коннекта. В итоге получил следующее
StackTrace 2
Код:
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') printing: MQ publisher start
 
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') printing: MSG in Queue 89, runloop
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: Exception in thread "AgentThread: JavaAgent"
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: java.lang.ExceptionInInitializerError
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.ActiveMQConnectionFactory.setBrokerURL(ActiveMQConnectionFactory.java:350)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.ActiveMQConnectionFactory.<init>(ActiveMQConnectionFactory.java:132)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.ActiveMQConnectionFactory.<init>(ActiveMQConnectionFactory.java:128)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at rni.lotus.systemintegrator.ActiveMQDataSender.sendTopicTextMessage(Unknown Source)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at JavaAgent.NotesMain(Unknown Source)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at lotus.domino.AgentBase.runNotes(Unknown Source)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at lotus.domino.NotesThread.run(Unknown Source)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: Caused by:
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key access_properties_not_allowed
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.util.MissingResourceException.<init>(MissingResourceException.java:50)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.util.ResourceBundle.getObject(ResourceBundle.java:400)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.util.ResourceBundle.getString(ResourceBundle.java:421)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at lotus.notes.JavaString.getString(Unknown Source)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at lotus.notes.AgentSecurityManager.checkPropertiesAccess(Unknown Source)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.beans.PropertyEditorManager.setEditorSearchPath(PropertyEditorManager.java:140)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at org.apache.activemq.util.IntrospectionSupport.<clinit>(IntrospectionSupport.java:55)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.lang.J9VMInternals.initializeImpl(Native Method)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
30.11.2015 17:06:54   AMgr: Agent ('PublisherMQ' in 'Publisher.nsf') error message:  ... 7 more
При всем этом в клиенте все продолжает работать.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
если все-равно менять в ФС секурити jvm - то почему бы не просто положить в jvm/lib/ext либы от jms
 
T

TAPAKAHATOP

если все-равно менять в ФС секурити jvm - то почему бы не просто положить в jvm/lib/ext либы от jms
Несколько разных апликух иногда перемещают с сервера на сервер и нет данных о том какую приблуду прикажут дополнительно вкорячить завтра, и чтобы не заниматься подкладыванием lib к jvm пусть лучше ползают вместе с дизайном.
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
@lmike, есть какой-нибудь инструмент для массового обновления файла секурити у пользователей?
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
164
@lmike, есть какой-нибудь инструмент для массового обновления файла секурити у пользователей?
По-моему, нет. Надо писать что-нибудь на LotusScript, которое сделает это и попросит пользователя перезагрузить Lotus Notes - иначе не сработает. Можно попробовать отправить "этот вредоносный код" в письме. Совсем удалённо, без участия пользователя, изменить файл не удастся, по крайней мере, я не знаю как.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Совсем удалённо, без участия пользователя, изменить файл не удастся, по крайней мере, я не знаю как.
@dimat,
задание на уровне оси, либо да, агентом java/ls при открытии базы.

Велосипед на Lotus
Нужный файл политик надо положить в ${user.home}/.java.policy
имя файла с точкой в начале!!
${user.home} - каталог пользователя в ОС.
В винде соответствует %USERPROFILE%

Итак шаги:
1. Создать файл .java.policy с нужным текстом внутри
2. Положить этот файл вложением в базу, в какой-нибудь документ, типа настройки.
3. Сделать агента на Java или Lotusscript, который проверит наличие файла с таким именем в каталоге пользователя.
4. Выложить файл из документа в каталог пользователя, если его там нет.
4.1 Можно сделать флаг в документе настройки на тему "Заменить".
Но клиент надо переоткрыть.

и в принципе "развертывание на клиенте" готово
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
@garrick, вопрос был риторический :)
это на сентенцию о том что код будет в БД, а не в ФС - что несет такие же ограничения как и копирование кода в ФС
если нет разницы (т.е. полиси надо менять и передергивать сервер) - зачем код в БД?
еще более "правильным" будет вариант OSGI, но этот путь, для меня (пока) не ясен в смысле автоматизации
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
Насколько я понимаю, это можно использовать только с XPages. Или я не прав?
на тренниге по хэпагам, лектор говорил о платформе экспедитор (на кот. современная нотусня построена), что - можно деплоить jar, но детали не освещал, в рамках лекций
можно ИБМ-эров спросить про подробности...
OSGI не привязан к хэпагам, он просто есть в составе, но используется для хттп задачи - это да
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
@lmike, вот это?

 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
164
на тренниге по хэпагам, лектор говорил о платформе экспедитор (на кот. современная нотусня построена), что - можно деплоить jar, но детали не освещал, в рамках лекций
можно ИБМ-эров спросить про подробности...
OSGI не привязан к хэпагам, он просто есть в составе, но используется для хттп задачи - это да
Нет, ну это обычный плагин на Eclipse. А на сервере-то оно как?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
@lmike, вот это?

не знаю - яж не уточнял дальше :(
[DOUBLEPOST=1449590573,1449590280][/DOUBLEPOST]
Нет, ну это обычный плагин на Eclipse. А на сервере-то оно как?
https://github.com/turumbay/domino-osgi/wiki
@turumbay рассказывал и даже ссылку оставлял
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
@lmike,
@savl,
Спасибо!
В принципе так и собирался делать, так уже сделал jar библиотеки.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!