• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Открытие документа из JApplet

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
Доброго всем.

Имеем:
1) Форма
2) Встроенный в форму JApplet
3) В JApplet находится JTable
4) В JTable у записи знаю server, db, unid
5) LN 8.5.x
6) Windows

Вопрос:
Как открыть лотусовый документ из <JTabe в JApplet в форме>?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
есть бридж Java-JS (нетшкаповский еще) я писал про него на Интертрасте
создаем кнопку на форме, с нужным кодом, жмем её (если надо - заполняем поля JS-ом)

вот тестовый код (могу БД закатать, с тестовой формой):<!--shcode--><pre><code class='java'> try {
//TODO add your code for jButton1.actionPerformed
if (win != null)
// следующие строки - вариант манипуляций с объектам
jsdoc=(JSObject)win.getMember("document");
jsforms=(JSObject)jsdoc.getMember("forms");
jsform=(JSObject)jsforms.getSlot(0);
jsfield=(JSObject)jsform.getMember("test");
String s=(String)jsfield.getMember("value");
jsfield=(JSObject)jsform.getMember("UID");
String args[] = new String[1];
args[0] = "Set UID and launch:" + s;
win.call("alert", args);
jsbutton=(JSObject)jsform.getMember("testLS");
jsfield.setMember("value",s);
jsbutton.call("click",null);
//здесь вариант запуска через eval
/* win.eval("alert('Set UID & launch using eval:' + document.forms[0].test.value)");
win
.eval("document.forms[0].UID.value=document.forms[0].test.value");
win.eval("document.forms[0].testLS.click()");
*/ } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}[/CODE]win получаем так (это в инициализации д.б.) <!--shcode--><pre><code class='java'> public void init() {
System.out.println("init");
super.init();
try {
win = JSObject.getWindow(this);
} catch (Exception e) {
e.printStackTrace();
}

}[/CODE]
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
забыл сказать - в 8-ке не проверял :)
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
lmike
если не сложно, киньте базку
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
lmike,
спасибо большое, помогло.

замечены некоторые особенности:

1) jsfield.setMember("value",s); вываливает JVM в OutOfStack. Это для Win7 + LN 8.5.3.1 Standart.
Работает
win.eval("document.forms[0].UNID.value='" + selectedRow.getUnid() + "'");
win.eval("document.forms[0].openButton.click()");

2) Set doc=dbOther.GetDocumentByUNID(uiWS.CurrentDocument.Document.UNID(0))
Call uiWs.EditDocument (False,doc,,,,False)
документ открывает, но кажет ошибку Invalid universal ID. Это для WinXP + LN 8.5.3.1 Basic. Возможно связано с тем, что документ открывается не в текущей бд, не проверял. В связке Win7 + 8.5.3.1 Standart такой ошибки не кажет.

ps: я по-ходу пока плюсовать не могу (
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
оно кажет 2 месюги с юнидом: первая - та что взято из поля, вторая - та что взято из подстановки в поле
мобуть с юнидами что-то не так (надо прописать правильный)
 

VladSh

начинающий
Lotus Team
11.12.2009
1 784
157
BIT
57
2)документ открывает, но кажет ошибку Invalid universal ID.
У меня похожее в режиме для чтения: показывается пустое сообщение, затем вышеуказанная ошибка.

lmike
Дополнительно: если закрыть 2-й док, в котором мы клацали кнопку в режиме для редактирования (док открылся - всё правильно), затем открыть снова, но в режиме для чтения, и нажать кнопку, наблюдаем краш 8-ки.
Может объекты как-то не полностью чистятся?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
надо еще вспомнить - что там я писал :) - этож было когда ни вин7 ни домино 8 не было
если смореть консоль и статус - аплеты вычищаются не сразу
надо посмотреть указанные ситуации
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
Вопрос:
Как открыть лотусовый документ из <JTabe в JApplet в форме>?
Не совсем понял вопрос... Но если вы хотите открыть документ в клиенте, исользуйте url типа "notes://server/database/unid". Попробуйте линк на документ вставить в окно Sametime и всё увидите. Скопированный из окна Saniteme url на документ, при правильной установске лотусового клиента, может быть открыт и из командной строки Windows.
 
Мы в соцсетях:

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