Аутентификация NTLM Axis2 для прокси-сервера - PullRequest
2 голосов
/ 13 января 2011

Как правильно проверить подлинность клиента 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("myUser@www.example.org");
proxyProperties.setPassWord("1234");
proxyProperties.setDomain("");
options.setProperty(HTTPConstants.PROXY, proxyProperties);

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

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

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

1 Ответ

1 голос
/ 29 января 2011

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

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

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

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

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

...