java - 将哪些 Java 属性传递给 Java 应用程序以使用 http 代理进行身份验证

标签 java apache-httpclient-4.x bamboo http-proxy apache-httpcomponents

我有一个 Java 应用程序试图通过 http 代理访问 Web 服务。 Java 应用是第 3 方应用,我们无法访问其源代码。

它的启动可以通过传递 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

我尝试传递 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 凭据相同的凭据。

关于java - 将哪些 Java 属性传递给 Java 应用程序以使用 http 代理进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30630330/

相关文章:

java - 本地方法调用中的 EJB 事务

java - 如何通过改造解析 JSON 数组

java - 如何使用 Apache httpclient 获取自定义 Content-Disposition 行?

python - Atlassian Bamboo 如何识别 python pytest 报告

Java:从另一个线程停止一个线程中的所有 Activity

java - 堆叠几个 ASM 字节码访问者的简单方法?

java - AWS SDK : java. lang.NoSuchMethodError

java - HttpClient 多线程性能

amazon-ec2 - 在 JIRA Studio 中创建 Windows AMI for Bamboo 进行构建

git - Bamboo - 构建我的 pull 请求