Аутентификация Axis2 NTLM для прокси-сервера

Каков правильный способ аутентификации клиента Axis2 (версия 1.4) на прокси-сервере http, для которого требуется аутентификация NTLM?

Я использую следующий код для предоставления учетных данных прокси-сервера, но аутентификация по-прежнему не выполняется (подробности см. в конце):

Options options = serviceStub._getServiceClient().getOptions();
options.setProperty(HTTPConstants.CHUNKED, false);
options.setProperty(HTTPConstants.PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_10);

ProxyProperties proxyProperties = new ProxyProperties();
proxyProperties.setProxyName("123.123.123.123");
proxyProperties.setProxyPort(8080);
proxyProperties.setUserName("[email protected]");
proxyProperties.setPassWord("1234");
proxyProperties.setDomain("");
options.setProperty(HTTPConstants.PROXY, proxyProperties);

С точно такими же учетными данными веб-браузер, такой как Firefox, может получить доступ через прокси-сервер, поэтому я предполагаю, что прокси-сервер настроен правильно. Однако с клиентом Axis2 аутентификация завершается сбоем (код состояния HTTP — «407 Proxy Authentication Required»).

Дополнительные подробности: я сравнил сетевой трафик от firefox и моего клиента с помощью сетевого сниффера. Основное отличие заключается в том, что клиент axis2 отправляет пустой ответ на вызов ntlm.

Кто-нибудь успешно прошел аутентификацию на http-прокси-сервере с использованием NTLM? Можете ли вы привести пример кода?


person Damian    schedule 13.01.2011    source источник
comment
См. stackoverflow.com/questions/916820/   -  person struhtanov    schedule 27.01.2012


Ответы (1)


Мне не удалось решить эту проблему (с Axis 2). Не хочу винить в этом Axis2 жестко. Возможно, я сделал что-то не так, но не смог понять, даже после многих часов попыток, отладки и чтения документации.

Но когда у меня закончились варианты, мне пришлось искать другие варианты. Этот другой вариант появился в виде альтернативных SOAP-Frameworks. Существует довольно много фреймворков SOAP для java. Я знаю об Axis2, CXF и JAX-WS.

Вместо Axis2 использую сейчас JAX-WS. Замена каркасов была простым процессом. Приятным побочным эффектом замены было то, что я избавился от огромного дерева зависимостей, с которым поставляется Axis2. JAX-WS является частью J6EE, поэтому нет необходимости импортировать другие зависимости.

На этот раз я сделал замену только на стороне клиента. Сервер по-прежнему использует Axis2. Эта комбинация прекрасно работает до сих пор, но я все еще планирую в конечном итоге заменить Axis2 и на стороне сервера.

В целом: если вы не используете специальную функцию Axis2, я думаю, что JAX-WS - лучший вариант.

person Damian    schedule 29.01.2011