Java Агент. Post Запрос С Авторизацией

Тема в разделе "Lotus + Java + LS2J", создана пользователем erdi, 5 ноя 2014.

  1. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    Есть Java агент, который по REST API создает POST запрос.
    Код (Java):
    static class MyAuthenticator extends Authenticator {
       public PasswordAuthentication getPasswordAuthentication() {
          System.out.println("trying to authenticate");
          return new PasswordAuthentication("login", "password".toCharArray());
       }
    }
     
    Authenticator.setDefault(new MyAuthenticator());
    URL urlObj = new URL(url);
    HttpURLConnection con = (HttpURLConnection) urlObj.openConnection();
    System.out.println("Соединение с " + url + " установлено.");
    con.setRequestMethod("POST");
    con.setRequestProperty("Content-Type", "application/xml");
    con.setDoOutput(true);
    OutputStream outputStream = con.getOutputStream();
     
    // формирование xml документа
    XMLOutputter xmlOutput = new XMLOutputter();
    Format format = Format.getPrettyFormat();
     
    xmlOutput = new XMLOutputter(format);
    xmlOutput.output(doc, outputStream);
     
    System.out.println("Получение ответа от сервера..");
     
    StringBuffer result = new StringBuffer();
    BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
       result.append(line).append("\n");
    }
     
    respCode = con.getResponseCode();
    Данный агент успешно работал, но вот в моменте с переводом времени и обновления jvm, соответственно сервер с 8.5.5 обновился до 8.5.6, агент стал вываливаться с ошибкой "Router: Agent printing: Server redirected too many times (20)"
    Причем что характерно, после перезагрузки сервера 1 раз агент работает корректно, но вот уже следующие запуски возвращают ошибку.
    Были предположения на кодировку, т.к. при переходе на 8.5.6 в java по-умолчанию снова кодировка стала cp1251 вместо utf-8. Но выставления utf-8 в самом агенте не решает проблему.
    Также были предположения на неправильные логин и пароль, но эта же ошибка при разных логинах и паролях и ведут они себя также(после перезагрузки сервера запускаются, после уже нет)
    Агент не зависает. Сервера лотуса на AIX и SLES, под виндой нет сервером, поэтому не тестировалось. Логин и пароль доменного пользователя, сами сервера в домен заведены.
    Может кто встречался с этой проблемой.
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    а может связано с сервисом - куда обращается агент (там чего-то поменяли)
     
  3. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    на сервисе стоит ntlm аутентификация и недавно там были работы по блокировки входа со служебных учетных записей(в агенте используется такая учетка для утентификации), но
    1) клянутся, что ничего серьезного в методе аутентификации не меняли
    2) после рестарта сервера лотуса 1 раз агент выполняется нормально, а вот последующие запуски - вылетает
    3) если запустить из-под eclipsa на локальной машине, то также все нормально сработает с этими же логином и паролем
    если бы не 2 и 3 пункт, то однозначно по 1-му пункту недоговаривают чего-то.
    Такое ощущение, как-будто кэшируется запрос и уже 2-й раз гоняет сам себя. Если бы кеш был на стороне сервиса, тогда перезагрузка лотуса не приводила бы к тому, что 1 раз агент срабатывал, значит что-то на стороне лотуса какой-то кэш включается или что-то из этого...пока идей нет с чем это может связано
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    эклипс на той же машине?
    кешироваться может в привязке к IP
    проверить запрос - поставить снифер (wireshark, tcpdump...)
     
  5. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    обнаружил такую закономерность
    1) агент изначально висит на входящих письмах и обрабатывает их. Если перестартовать роутер, тогда снова можно 1 письмо отправить и агент сработает
    2) если агента повесить, например, на LS агента и запускать на сервере, то также он запустится 1 раз и снова будет выдавать ошибку. Но вот что перегрузить из тасков - пока не нашел. рестарт сервера естественно снова позволит запустить 1 раз агента из LS агента
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    а либы только штатные или есть "внешние", если есть - то где лежат (в БД или в ФС)?
     
  7. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    commons-codec-1.6.jar, jdom-2.0.5.jar, jdom-2.0.5-contrib.jar
    лежат как в ФС, так и БД
    агент 3 месяца работал нормально без нареканий, сбой совпал с обновлением jvm под новый час. пояс(сбросились по-умолчанию все пермишины) + работы на стороне сервиса. И кто виноват не понятно. мы на их работы наговариваем, они на наши
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    тогда установить истину - поднять тестовый сервак без патча
     
  9. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    после экспериментов с разными версиями и FP выяснилось следующее.
    при откатах назад с 8.5.3.6 до 8.5.3.5 проблема не исчезала
    на 9.0 было все ок
    на 9.0.1 все ок
    на 9.0.1 FP2 снова была ошибка с авторизацией при 2-м и последующих запросах до сервера с ntlm авторизацией
    видимо ibm внесла какие-то глобальные изменения в свою версию java, в FP6 для 8.5.3 и FP2 для 9.0.1 :rolleyes:
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
Загрузка...
Похожие Темы - Java Агент Post
  1. TAPAKAHATOP
    Ответов:
    18
    Просмотров:
    1.528
  2. HelenHelen
    Ответов:
    5
    Просмотров:
    1.758
  3. YGol
    Ответов:
    4
    Просмотров:
    1.513
  4. KingGLEB
    Ответов:
    1
    Просмотров:
    1.111
  5. Мыш
    Ответов:
    22
    Просмотров:
    4.511

Поделиться этой страницей