У нас есть один веб-сервис, который вызывает сторонний веб-сервис. Для проверки этой реализации у нас есть разные среды.
Локальный компьютер разработчика: Когда мы запускаем приложение, все работает нормально, и наш веб-сервис может найти сторонний URL. (Локальный компьютер использует ОС Windows)
Локальный сервер разработки: После развертывания приложения на сервере разработки мы не можем получить доступ к стороннему URL-адресу и получить ошибку Http Proxy 407. (У нас Linux с IBM J9 JVM.)
Чтобы обойти эту проблему, мы попытались установить -Dhttps.proxyUser XXX -Dhttps.proxyPassword XXX
, но мы продолжали получать ошибку. Второй вариант, который мы попробовали, использует Authenticator.setDefault(new CustomImplAuthenticator())
. Но, что удивительно, JVM не вызывала getPasswordAuthentication
и продолжала выдавать ошибку.
Мы снова запустили то же приложение на локальной машине разработчика с кодом authenticator.setdefault
. Мы могли получить доступ к URL, как было сказано ранее, но на этот раз JVM снова не вызвал метод getPasswordAuthentication
. После поиска по сети мы обнаружили, что с помощью NTLM аутентификационные данные разрешаются, и, следовательно, мы чувствуем, что код работает на Windows.
Может кто-нибудь сообщить мне, какие настройки мы должны настроить для приложения, развернутого в Linux, чтобы была вызвана как минимум реализация, назначенная для Authenticator.setDefault
.