setDefaultHostnameVerifier中的验证方法的目的

时间:2018-10-06 00:49:37

标签: java spring spring-boot

能否请您告诉我以下代码的作用?从哪里获取主机名,验证方法的目的是什么?

static {
    //for localhost testing only
    javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(
            new javax.net.ssl.HostnameVerifier(){

                public boolean verify(String hostname,
                                      javax.net.ssl.SSLSession sslSession) {
                    System.out.println(" hostname = " + hostname);
                    if (hostname.equals("localhost")) {
                        return true;
                    }
                    return false;
                }
            });
}

1 个答案:

答案 0 :(得分:1)

当您连接到HTTPS URL时,目标站点将显示其证书,该证书包含可以使用该证书的域的列表。 (请参见下面的示例图片)。当您获得HttpsURLConnection

时,Java对此进行了验证。

在您发布的代码中,您正在定义一个HostnameVerifier,当上述检查失败时,该df_aux将被调用。如果要连接的域是localhost,则允许连接设置继续。这使您可以将任何证书用于https://localhost域中的服务。

enter image description here