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

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

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

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

Java + Lotus 8.5.3

  • Автор темы DamirAstana
  • Дата начала
D

DamirAstana

Всем привет. У меня такая задача, есть приложение, которое написано было на C# и дружила с lotus при помощи библиотеки Interop.Domino.DLL, но как выяснилось это невозможно на 64 битных машинах делать. IBM сам где то такое написал. Теперь нужно написать приложение которое будет делать тоже самое, но и на 64битных. Решил писать на Java, есть netBeans 7.2.1, лотус 8.5.3, на форуме прочитал что это можно сделать при помощи DIIOP, не могли бы подсказать, как это сделать поэтапно. Нашел в хэлпе инфу, но не получается.
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
В лотусовом хелпе есть описание классов с примерами. . Там же есть примеры подключения и пр. Пробуйте, спрашивайте конкретно что не получается.
 
D

DamirAstana

На сервере поднята служба DIIOP
Есть пользователь, мы его используем для входа на приложение с xpages, все прекрасно логиниться.
В java приложении добавил два jar файла Notes.jar и NCSO.jar
Вот собственно код:
Код:
import lotus.domino.*;

/** 
*
* @author 
*/
public class JavaDIIOP
{
public static void main(String argv[])
{
try {
System.out.println("test ");
Session s = NotesFactory.createSession(serverPath, userName, userPassword);
// To bypass Readers fields restrictions
// Session s = NotesFactory.createSessionWithFullAccess();
String p = s.getPlatform();
System.out.println("Platform = " + p);
} catch (Exception e) {
e.printStackTrace();
}
}

}
при запуске выходит предупреждение:

NotesException: Server access denied
at lotus.domino.NotesExceptionHelper.read(Unknown Source)
at lotus.domino.NotesExceptionHolder._read(Unknown Source)
at lotus.priv.CORBA.iiop.RepImpl.invoke(Unknown Source)
at lotus.priv.CORBA.portable.ObjectImpl._invoke(Unknown Source)
at lotus.domino.corba._IObjectServerStub.createSession(Unknown Source)
at lotus.domino.cso.Session.initSession(Unknown Source)
at lotus.domino.cso.Session.<init>(Unknown Source)
at lotus.domino.cso.Session.createSession(Unknown Source)
at lotus.domino.NotesFactory.createSessionUP(Unknown Source)
at lotus.domino.NotesFactory.createSession(Unknown Source)
at javadiiop.JavaDIIOP.main(JavaDIIOP.java:18)
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
Notes сессию можно инициализировать только в Notes потоке. Внимательнее смотрите примеры, там есть конкретно про DIIOP. Убедитесь что всё правильно настроено на сервере, описание как настроить DIIOP есть в хелпе администратора.

Добавлено: А почему решили использовать именно DIIOP? Обычный API (Notes.jar) и работает быстрее, и никакой головной боли с настройкой сервера. Правда нужен клиент или сервер там, где исполняется ваше приложение.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
ну... взаимодействие с доминой необязательно делать через корбу или нотусневые длл
если использовать xPages и ExtLib - там есть REST
 
D

DamirAstana

Notes сессию можно инициализировать только в Notes потоке. Внимательнее смотрите примеры, там есть конкретно про DIIOP. Убедитесь что всё правильно настроено на сервере, описание как настроить DIIOP есть в хелпе администратора.

Добавлено: А почему решили использовать именно DIIOP? Обычный API (Notes.jar) и работает быстрее, и никакой головной боли с настройкой сервера. Правда нужен клиент или сервер там, где исполняется ваше приложение.
А как через этот API? Мне бы пример как получить доступ к базе и к документу.
Клиент будет установлен на всех рабочих станциях. Так что этот вариант меня также устраивает
 
D

DamirAstana

при работе через notes.jar какие требования к клиенту и к домино?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
при работе через notes.jar какие требования к клиенту и к домино?
никаких
но запрос пароля будет в виде "безобразного" окошка
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
Никаких особых требований - оно просто должно быть и должно быть прописано в PATH (Lotus Notes клиент я имею ввиду), чтобы notes.exe мог запускаться из любого каталога с командной строки. На сервере ничего настраивать не надо. Имя пользователя берётся из user.id, прописанного в notes.ini, хотя есть варианты... Примеры всё там же.

А что хотите сделать, если не секрет?


Добавлено:
никаких
но запрос пароля будет в виде "безобразного" окошка
Если поставить галочку в клиенте "не запрашивать пароль для других Notes приложений", то если пользователь уже залогинился, никаких окошек не будет. Так же не будет, если имя и пароль указать в коде.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
Если поставить галочку в клиенте "не запрашивать пароль для других Notes приложений", то если пользователь уже залогинился, никаких окошек не будет. Так же не будет, если имя и пароль указать в коде.
первое - несекурно, второе (часом ничего не путаете?) - какие указывать, если пароль привязан к ИД?
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
. Пароль того пользователя, чей ID.
Код:
createSession((String)null, (String)null, passwordString) -- Access is granted if the password matches the Notes user ID password.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
. Пароль того пользователя, чей ID.
Код:
createSession((String)null, (String)null, passwordString) -- Access is granted if the password matches the Notes user ID password.
м-да... никогда не пользовался, м.б. это тока с 6.5 пошло (последний раз вызывал подобное для 5-ки)

Добавлено: хотя в заметках, в хэлпе 6.5 не написано - что это специфика с 6.х
 
Мы в соцсетях:

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