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

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

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

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

Отладка по шагам Web-сервиса

  • Автор темы ankass
  • Дата начала
A

ankass

Имеется Web-сервис провайдер (на Яве), из его wsdl получаем консюмер.
Далее подгружаем к агенту(Ява) этого консюмера как библиотеку.
Работаем.

Далее вносим изменения в провайдер, пересоздаем консюмера, переподтягиваем его в агент.

Запускаем агента и получаем ошибку (на картинке).

Для ее устранения мне приходится пересоздавать агента, тащить в него код из предыдущего, переподключать консюмера.
Есть ли более простой путь?
 

Вложения

  • _____________.JPG
    _____________.JPG
    10,2 КБ · Просмотры: 602
A

ankass

Можно ли подсунуть код web-сервис провайдера для отладки?
Попытка на рисунке не удалась.
 

Вложения

  • _______.JPG
    _______.JPG
    77,7 КБ · Просмотры: 584
A

ankass

(Не, про вэб-сервис не она (если я не ошибся ))

Имеется примерно такой код агента

import lotus.domino.*;
import java.io.BufferedInputStream;
public class TestWSJ extends AgentBase {
AnswerS b= new AnswerS();
public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// sleep(10000);
System.out.println("Вызываем сервис");
// (Your code goes here)
TestDoc stub = new TestDocServiceLocator().getDomino();
b=stub.getDoc();
System.out.println(b.getDocUnid()+ " Unid");
System.out.println(b.getSuccess()+ " Success");

} catch(Exception e) {
e.printStackTrace();
}
}
}

примерно такой текст провайдера

import lotus.domino.*;
import lotus.domino.types.*;
import java.util.*;
public class TestDoc{
public AnswerS getDoc(){
AnswerS answer=new AnswerS();
answer.docUnid = "";
answer.success = answer.success + "Ошибка в модуле Main";
return answer;
}
}

где

public class AnswerS {
public String docUnid;
public String success;
}

При запуске вэб-сервиса в консоль пишется примерно такое:

java.lang.ClassCastException: java.util.ArrayList incompatible with AnswerS
at DominoSoapBindingStub.getDoc(DominoSoapBindingStub.java:10)
at TestWSJ.NotesMain(TestWSJ.java:15)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)

В общем не возвращает ответ, не смотря на тип значения, возвращаемого функцией вэб-сервиса.
Даже если это просто String или int.
Пакет util.* вроде указан, но видимо этого мало. Куда копать?
 
Мы в соцсетях:

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