我正在使用openjdk。对于porxy身份验证,我使用的是Authenticator,但对于我的第一个HTTPS请求,身份验证器不会进行身份验证并抛出错误。通过HTTP连接后,HTTPS可以正常工作。
我尝试设置系统属性jdk.http.auth.tunneling.disabledSchemes =“”和jdk.http.auth.proxying.disabledSchemes =“”。
private static void setProxy(String proxyHostName,int proxyport){
proxy=new Proxy(Proxy.Type.HTTP,new InetSocketAddress(proxyHostName,proxyport));
}
private static void setProxy(String proxyHostName,int proxyport,String username,String password){
setProxy(proxyHostName,proxyport);
if (username!=null && password!=null) {
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
System.setProperty("jdk.http.auth.proxying.disabledSchemes", "");
Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication(username, password.toCharArray()));
}
};
Authenticator.setDefault(authenticator);
}
}
答案 0 :(得分:0)
在.sh文件的java_opts中设置此属性后。对我来说很好。 Orelse任何人想要在其Java代码中进行设置都意味着可以在start方法中进行设置。