2016-12-17 17 views
1

Есть много ответов на этот вопрос (one, two, three), но все они используют устаревшие методы. Для Java 1.7 и более поздних версий лучший способ запросить ресурс через http, когда необходимо предоставить учетные данные для Basic, Digest, NTLM и/или Windows Identity?Как получить ответ HTTP с помощью Basic, Digest и NTLM/WindowsIdentity?

Использование библиотеки Apache для этого в порядке.

Я знаю, что это повторяющийся вопрос, но существующий ответ кажется, что он использует устаревшие звонки.

Обновление: Это для библиотеки, в которой пользователь может передать нам любой URL-адрес и сказать, что это любая из разных систем аутентификации. Эта библиотека добавляется в различные приложения нашими пользователями. Таким образом, это может быть любая услуга, используемая в любом приложении. Это может быть сеть, это может быть REST. Это может быть в Apache, WebLogic, WebSphere или что-то еще.

+0

Это слишком мало информации. Вы хотите получить доступ к службе HTTP (сеть, отдых)? Какую структуру Apache вы планируете использовать? (http-client, axis, cxf, ...), какую версию? – gusto2

+0

@GabrielVince Я обновил его, хотя в качестве библиотеки времени выполнения мы предоставляем множество людей, основным ответом является «может быть что угодно». –

ответ

0

Wwhat вы пытаетесь достичь - нет никакой волшебной серебряной пули для всех методов проверки подлинности. Лучший вариант - использовать хорошо установленную инфраструктуру HTTP-клиента (например, http-client) с богатыми authentication options. Есть несколько других, но я считаю apache HttpCompnents одним из самых надежных (и все еще свободных).

Клиент-клиент Apache HTTP должен работать в автономном режиме с любой аутентификацией только для клиента (основной, дайджест, NTLM (не мой любимый)). В основном вы реализуете «CredentialProvider» (класс обратного вызова пароля) для HTTP-контекста, в котором он будет работать. Для Windows Identity (я предполагаю, что вы имеете в виду аутентификацию Kerberos/SPNEGO) вам понадобится еще одна конфигурация (файл keytab, конфигурация jaas, ..).

Обычно вы должны придерживаться некоторых стандартных стандартов, поддерживаемых всеми, и пытаться заставить других использовать его (базовая проверка подлинности через TLS/SSL должна быть прекрасной).

Возможно, вы сталкиваетесь с другими приложениями (WebSphere, WebLogic, другие приложения), которые могут заставить вас использовать разные версии клиентских библиотек или версий HTTP, и ваша конфигурация не будет работать для всех методов. Поэтому, пока вы не планируете внедрять свой собственный http-клиент (простой для базовой и дайджест-аутентификации), вам придется принуждать клиентов использовать определенную структуру с конкретной версией.

+0

Большое спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^