vid*_*guy 5 java bamboo http-proxy apache-httpcomponents apache-httpclient-4.x
我有一个 Java 应用程序正在尝试通过 http 代理访问 Web 服务。Java 应用程序是第三方应用程序,我们无法访问其源代码。
可以通过传递 Java 启动参数等来配置其启动。我想知道可以传递哪些 java 属性,以便应用程序可以使用登录用户的 NTLM 凭据来验证代理连接?
当我将 https.proxyHost 和 https.proxyPort (即 -Dhttps.proxyHost=abcd ... 传递给 jvm 命令行)时,我确实看到日志中存在差异。现在失败并显示以下消息。
[WrapperSimpleAppMain] [AuthChallengeProcessor] ntlm authentication scheme selected
INFO | jvm 5 | 2015/06/03 14:49:25 | 2015-06-03 14:49:25,380
INFO [WrapperSimpleAppMain] [HttpMethodDirector] No credentials available for NTLM <any realm>@proxy.ins.dell.com:80
INFO | jvm 5 | 2015/06/03 14:49:25 | Exiting due to fatal exception.
INFO | jvm 5 | 2015/06/03 14:49:25 | com.atlassian.bamboo.agent.bootstrap.RemoteAgentHttpException: HTTP status code 407 received in response to fingerprint request
Run Code Online (Sandbox Code Playgroud)
我尝试传递 http.proxyUser 和 http.proxyPassword。那行不通。我想知道如何正确配置才能使 Java 应用程序透明地使用代理信息而无需更改代码。
谢谢
最后我通过反复试验弄清楚了。将 java.net.useSystemProxies=true 与 https.proxyPort 一起传递,https.proxyHost 解决了这个问题。
基本上java vm命令行得到了
-Djava.net.useSystemProxies=true -Dhttps.proxyPort=80 -Dhttps.proxyHost=proxyserver.mycompany.com
我不必传递 https.proxyUser、https.proxyPassword。我相信代理身份验证使用与我的登录 NTLM 凭据相同的凭据。
| 归档时间: |
|
| 查看次数: |
7641 次 |
| 最近记录: |