代理身份验证器使HTTP失效,但HTTPS失效。为什么?

时间:2019-03-28 11:38:18

标签: java proxy

我正在使用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);
        }

    }

1 个答案:

答案 0 :(得分:0)

在.sh文件的java_opts中设置此属性后。对我来说很好。 Orelse任何人想要在其Java代码中进行设置都意味着可以在start方法中进行设置。