我们有一个调用第三方 Web 服务的 Web 服务。为了测试这个实现,我们有不同的环境。
本地开发者机器:当我们运行应用程序时,一切正常,我们的 web 服务能够访问第三方 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
调用分配给的实现。