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

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

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

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

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

Обращение к Web сервисам из лотуса.

  • Автор темы ficoos
  • Дата начала
F

ficoos

Приветствую форумчан!
Наступил такой период в работе, когда потребовалось связать lotus с IP телефонией Cisco.
В адресной книге лотуса есть номера телефонов сотрудников. Почти у всех пользователей в офисе стоят IP телефоны.
Сейчас сделано так, что к url строке приписывается номер абонента. Неудобства такого обращения связано с
открытием url страницы ( не лотусовой ), для подтверждения id пользователя и пароля.
Как с помощью lotusscript обеспечить запрос wsdl документа и получить его в виде массива строк( чтоб можно бвло записать его в поле( log) для анализа),
и отослать ответ SOAP, чтоб не было открытия url страниц с запросами ввода данных (без написания web, сервисов в лотусе - нет опыта такого рода.),
а следовало сразу соединение?
Ооооочень надо!!!
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
вот это постановка задачи
не проще ли в лотусе написать кнопку нажав на которую посредством VBA сразу будет идти звонок? :unsure:
 
F

ficoos

нет не проще. у циски свои свойства безопасности.
Ей нужно передать кто звонит( чтобы определить номер телефона звонящего, куда передать соединение) и
номер абонента( кому звонок делается ).
телефонные аппараты тоже заложены с настройках пользователя, для определения стационарный аппарат( ip телефон )
или программный.
Вот такие вот дела....
 

vincent_vega

Green Team
02.04.2005
169
1
BIT
0
Почитайте в хелпе лотуса раздел Lotus Domino Designer Basic User Guide and Reference > Programming Domino for Web Applications > Web services> Creating web service consumers

В принципе ничего сложного, я правда предпочитаю работать с вебсервисами на джаве, а не на скрипте


Вкратце опишу как делать пользователя вебсервиса:

1. Получаем WSDL файл описания веб сервиса (по почте или сохраняем напрямую из URL сервиса)
2. На основе WSDL файла создаем библиотеку вебсервиса (в дизайнере раздел "web service consumer" для дизайнера 8.5). Далее в зависимости от сервиса в библиотеке создадутся классы для работы с сервисом
3. Создаем агент который будет работать с сервисом.
4. Вызов сервиса:
TestServiceLocator locator = new TestServiceLocator();
TestServiceSoap ws = locator.getTestServiceSoap();
locator - указывает где находиться сервис (URL)
ws - объект вебсервиса

У объекта веб сервиса будут методы которые были описаны в WSDL файле. Вызывая их можно обрабатывать данные:

Calendar cal = Calendar.getInstance();
String st = ws.helloWorld(cal); // передаем на вход дату
System.out.println("Hello World = " + st);

получаем результат "Hello World = Ви ввели дату 19-01-2009 10:30:21"
 
F

ficoos

Да блин... Мне не надо создавать web сервис - он уже существует на циске.
программа должна работать с чужим сервисом.
мне надо взять wsdl документ с циски, который не на лотусовом серваке находится.
Разложить и в ответ вписать нужные данные, а потом отослать этот soap ответ.
1. Как взять wsdl в вие массива строк( для анализа ) и вписать этот массив в поле?
2. как отослать массив строк в ответ на запрос ( xml )
вот и все, что мне надо.
Опыта с xml тоже нет.
 

vincent_vega

Green Team
02.04.2005
169
1
BIT
0
Да блин... Мне не надо создавать web сервис - он уже существует на циске.
Не нервничайте молодой человек:) а читайте внимательней что я пишу. Я как раз описал процесс использования со стороны домино чужого вебсервиса. Почитайте сначала документацию, разберитесь как вообще работают вебсервисы. Для тестирования сервисов очень советую использовать
 
F

ficoos

Во!
А может ли кто подсказать:
-Call Client.MSSoapinit(sWSDL)
-Что такое .MSSoapinit?
Просто в этом месте ошибку рисует и не могу инициализировать коннект и взять wsdl структуру.
web сервис сторонний.
 
F

ficoos

A есть разница, что документ находится вот по такому пути:
link removed....?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
может здесь что найти:
 
F

ficoos

при прямом обращении к стороннему web сервису - ничего не получилось - отказ в доступе.
Вытащил его отдельным файлом на локальный комп и теперь при отправке запроса новая ошибка.

Сама ошибка пришита к сообщению.
Как с этим бороться??? :(
 

Вложения

  • ______.bmp
    290,8 КБ · Просмотры: 514
F

ficoos

Приветствую!
После нескольких дней упорного поиска решения был создан работоспособный агент, написанный на lotusscript.
Проблема решилась. Всем спасибо!!!
 
A

Akupaka

ficoos
поздравляю! поделился бы опытом заодно? другим пригодится
 
G

Gor

Не знаю как реализована работа у ficooz, но у меня работает вот такой вариант со сторонним веб сервисом, помоему я по этой
теме так и не отписался нигде...
(интеграция SAP и Lotus, вызывается WEB сервис на стороне SAP)
чтобы обратиться к Веб сервису из Лотуса необходимо предустановить SOAP Toolkit 3.0
лежит он здесь


Без аутентификации:
Код:
Sub Click(Source As Button) 
Dim s As String 
sWSDL = "http://gmvaz.gmavtovaz.local:8000/sap/bc/srt/rfc/sap/ZRUMM_LN_MAT_CREATE?sap-client=100&wsdl=1.1" 
'Create a new MSSOAP client object 
Set Client =CreateObject("MSSOAP.SoapClient30") 
'Initialize connection to the WSDL file and get WSDL structure 
Call Client.mssoapinit (sWSDL) 
'Call ZRUMM_LN_MAT_CREATE function provided by Web service 
s = "test" 
Print Client.ZRUMM_LN_MAT_CREATE(s) 
End Sub

C аутентификацией:

Код:
Sub Click(Source As Button) 
Dim sWSDL As String 

'username, password - логин и пароль доступа к web-сервису (в моём случае был SAP-овский пользователь с необходимыми полномочиями)


username="ИМЯ ПОЛЬЗОВАТЕЛЯ"
password="ПАРОЛЬ"

sWSDL = "http://"+username+":"+password+"@gmprod:8000/sap/bc/srt/rfc/sap/ZRUMM_LN_MAT_CREATE?sap-client=300&wsdl=1.1" 

'Соединение с web-сервисом с аутентификацией 

Set Client =CreateObject("MSSOAP.SoapClient30") 
Call Client.mssoapinit(sWSDL) 

Client.ConnectorProperty("AuthUser") = username 
Client.ConnectorProperty("AuthPassword") = password 
Client.ConnectorProperty("WinHTTPAuthScheme") = 1 

'Вызов функционального модуля ZRUMM_LN_MAT_CREATE который описан в web-сервисе 
'(понятное дело что у каждого он будет свой со своим числом входных и выходных параметров)
's1-3 - входные параметры; o1-o3 - выходные параметры 

s1 = "test1"
s2 = "test2"
s3 = "test3"

o1 = Client.ZRUMM_LN_MAT_CREATE(s1,s2,s3,o2,o3) 'После отработки он передает в функию s1,s2,s3 и возвращает o1,o2,o3

'если бы выходной параметр был только один, код выглядел бы так 
'o1 = Client.ZRUMM_LN_MAT_CREATE(s1,s2,s3) 



End Sub
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Не знаю как реализована работа у ficooz, но у меня работает вот такой вариант со сторонним веб сервисом, помоему я по этой
теме так и не отписался нигде...
(интеграция SAP и Lotus, вызывается WEB сервис на стороне SAP)
чтобы обратиться к Веб сервису из Лотуса необходимо предустановить SOAP Toolkit 3.0
лежит он здесь


Без аутентификации:
Код:
Sub Click(Source As Button) 
Dim s As String 
sWSDL = "http://gmvaz.gmavtovaz.local:8000/sap/bc/srt/rfc/sap/ZRUMM_LN_MAT_CREATE?sap-client=100&wsdl=1.1" 
'Create a new MSSOAP client object 
Set Client =CreateObject("MSSOAP.SoapClient30") 
'Initialize connection to the WSDL file and get WSDL structure 
Call Client.mssoapinit (sWSDL) 
'Call ZRUMM_LN_MAT_CREATE function provided by Web service 
s = "test" 
Print Client.ZRUMM_LN_MAT_CREATE(s) 
End Sub

C аутентификацией:

Код:
Sub Click(Source As Button) 
Dim sWSDL As String 

'username, password - логин и пароль доступа к web-сервису (в моём случае был SAP-овский пользователь с необходимыми полномочиями)


username="ИМЯ ПОЛЬЗОВАТЕЛЯ"
password="ПАРОЛЬ"

sWSDL = "http://"+username+":"+password+"@gmprod:8000/sap/bc/srt/rfc/sap/ZRUMM_LN_MAT_CREATE?sap-client=300&wsdl=1.1" 

'Соединение с web-сервисом с аутентификацией 

Set Client =CreateObject("MSSOAP.SoapClient30") 
Call Client.mssoapinit(sWSDL) 

Client.ConnectorProperty("AuthUser") = username 
Client.ConnectorProperty("AuthPassword") = password 
Client.ConnectorProperty("WinHTTPAuthScheme") = 1 

'Вызов функционального модуля ZRUMM_LN_MAT_CREATE который описан в web-сервисе 
'(понятное дело что у каждого он будет свой со своим числом входных и выходных параметров)
's1-3 - входные параметры; o1-o3 - выходные параметры 

s1 = "test1"
s2 = "test2"
s3 = "test3"

o1 = Client.ZRUMM_LN_MAT_CREATE(s1,s2,s3,o2,o3) 'После отработки он передает в функию s1,s2,s3 и возвращает o1,o2,o3

'если бы выходной параметр был только один, код выглядел бы так 
'o1 = Client.ZRUMM_LN_MAT_CREATE(s1,s2,s3) 



End Sub
А без дополнительных библиотек никак?
 

lmike

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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
что нашел то и поднял :lol:
Просто вот сейчас пробую подключиться к сервису SAP - получаю ошибку

Код:
The requested operation failed: WSDLException (at /wsdl:definitions/wsdl:portType/wsp:Policy): faultCode=INVALID_WSDL: Encountered unexpected '{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy'.
 
Мы в соцсетях:

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