• 🚨 24 часа до повышения цены на курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    Последний день записи в текущий поток по старой цене Подробнее о курсе ...

Managed Beans и Java-агенты

  • Автор темы Автор темы Zeka
  • Дата начала Дата начала
Z

Zeka

Можно ли в ява-агенте использовать ява классы, что лежат не в Script Libraries, а в самом nsf? Как?

ПС: Надеюсь вопрос понятно объяснил? :)
 
Можно ли в ява-агенте использовать ява классы, что лежат не в Script Libraries, а в самом nsf? Как?
имхо - маловероятно.
можно конечно поковырять в направлении:
1. выяснить, как их грузит сам лотус: добавить в managed bean метод, возвращающий this.getClass().getClassLoader() .
2. попытаться инстанцировать указанный класслоадер в агенте и загрузить им требуемый класс.

навскидку, сложности могут возникнуть из-за того, что
- класслоадер для managed beans может лежать черте-где ( напр. в %lotushome%/xsp ) и не попадать в classpath агента.
- агент может работать в нормальной сессии, а класслоадер для managed bean наверняка использует веб-сессию.
- кухня, связанная managed beans возможно вообще не будет работать без osgi контейнера.
- lifecycle для бинов наверняка вопроизвести не получится
- ...

Если есть представление, где конкретно в nsf лежит код - можно написать собственный класслоадер :-)

P.S. А агент, случаем, не вебный? Если да - то можно сам агент заменить на
 
Сорри, так и думал, что "Managed Beans" в заголовке собъёт с толку...

Вобщем, надо обрабатывать все изменённые документы в базе.
Для этого сделал ЯваАгента, который "After document created or modified" эти документы и обрабатывает. В базе у меня есть несколько Managed Beans'ов и парочка вспомоготельных явовских класcов - Util, Log. Очень хотелось бы использовать эти Util и Log в моём агенте.
Сейчас я тупа скопировал эти класы в Script Libraries и добавил эту Script Library в ресурсы моего агента. Но держать один и тот же код в 2 местах, сами понимаете, не солидно:)

Вот и возник вопрос. Как из ЯваАгента использовать классы Util и Log, что лежат в самом nsf?
 
Сорри, так и думал, что "Managed Beans" в заголовке собъёт с толку...
...
Вот и возник вопрос. Как из ЯваАгента использовать классы Util и Log, что лежат в самом nsf?
Да я в принципе изначально понял, о чем речь. Все вышеизложенное применимо к вашему случаю - т.е. штатно вряд ли получится.

Однако, теоретически, задача решаемая. Ковырнул ради интереса:
Код:
Set nc = db.CreateNoteCollection(False)
nc.SelectMiscFormatElements = True
nc.SelectionFormula = {@Right( @GetField("$Title"); 5 ) = "class" }
вернет таки ноды, содержащие java классы из nsf ( аналогично можно вытянуть jar-ы, лежащие в WEB-INF/lib )
в $Title будет что-то типа "WEB-INF/classes/com/acme/Foo.class"
Вываливаем ноду в xml, и в /fileresource/filedatа будет лежать скомпилированный класс. Остается декодировать его из base64 в byte[] и можно кормить этим класслоадер...
 
Спасибо... Пускай уж лучше код дублируется, чем такие костыли ваять...
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD