Java认证HTTP代理

如何配置用户名和密码以使用Java验证http代理服务器?

我刚刚发现以下配置参数:

http.proxyHost=<proxyAddress>

http.proxyPort=<proxyPort>

https.proxyHost=<proxyAddress>

https.proxyPort=<proxyPort>

但是,我的代理服务器需要身份验证。如何配置我的应用程序以使用代理服务器?

回答:

(编辑:正如OP所指出的,java.net.Authenticator也需要使用a 。为了正确起见,我相应地更新了我的答案。)

(编辑#2:正如另一个答案中指出的那样,在JDK 8中,需要basicjdk.http.auth.tunneling.disabledSchemes属性中删除身份验证方案)

对于身份验证,用于java.net.Authenticator设置代理的配置并设置系统属性http.proxyUserhttp.proxyPassword

final String authUser = "user";

final String authPassword = "password";

Authenticator.setDefault(

new Authenticator() {

@Override

public PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(authUser, authPassword.toCharArray());

}

}

);

System.setProperty("http.proxyUser", authUser);

System.setProperty("http.proxyPassword", authPassword);

System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");

以上是 Java认证HTTP代理 的全部内容, 来源链接: utcz.com/qa/415564.html

回到顶部