Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java setDefaultHostnameVerifier中验证方法的用途_Java_Spring_Spring Boot - Fatal编程技术网

Java setDefaultHostnameVerifier中验证方法的用途

Java setDefaultHostnameVerifier中验证方法的用途,java,spring,spring-boot,Java,Spring,Spring Boot,你能告诉我下面的代码是什么吗?从何处获取主机名?验证方法的目的是什么 static { //for localhost testing only javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier( new javax.net.ssl.HostnameVerifier(){ public boolean verify(String hostname,

你能告诉我下面的代码是什么吗?从何处获取主机名?验证方法的目的是什么

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;
                }
            });
}

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

在您发布的代码中,您定义了一个
HostnameVerifier
,当上述检查失败时将调用它。如果要连接的域是localhost,则允许继续进行连接设置。这允许您为域中的服务使用任何证书


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

在您发布的代码中,您定义了一个
HostnameVerifier
,当上述检查失败时将调用它。如果要连接的域是localhost,则允许继续进行连接设置。这允许您为域中的服务使用任何证书


该类名为
HostnameVerifier
,因此您认为
verify
方法将验证什么?主机名。--它是从哪里来的?参数。---您是否阅读了文档,即的javadoc实际的方法是什么?它允许HTTPS连接到
localhost
,并拒绝所有其他连接。谢谢@Andreas。在我的例子中,我调用的url与我在方法中打印的主机名相同。url除了主机名-,还有一个上下文路径。从sys out语句打印的主机名只是主机名值。该类名为
HostnameVerifier
,因此您认为
verify
方法将验证什么?主机名。--它是从哪里来的?参数。---您是否阅读了文档,即的javadoc实际的方法是什么?它允许HTTPS连接到
localhost
,并拒绝所有其他连接。谢谢@Andreas。在我的例子中,我调用的url与我在方法中打印的主机名相同。url除了主机名-,还有一个上下文路径。从sys out语句打印的主机名只是主机名值。谢谢@Ranjith。我连接的url是否返回证书信息?当我评论it条件时,我看到一条错误消息,说预期的dns是“本地主机”,尽管证书没有将其作为dns。作为建立HTTPS连接的一部分,您连接到的服务器发送证书。您可以在chrome中打开URL并查看上图中突出显示的“主题备选名称”(SAN)。如果localhost不在SAN列表中,您将得到所描述的错误。您在问题中发布的代码阻止了该错误。我想知道是否有任何情况下,为
localhost
返回
true
会成为漏洞?谢谢@Ranjith。我连接的url是否返回证书信息?当我评论it条件时,我看到一条错误消息,说预期的dns是“本地主机”,尽管证书没有将其作为dns。作为建立HTTPS连接的一部分,您连接到的服务器发送证书。您可以在chrome中打开URL并查看上图中突出显示的“主题备选名称”(SAN)。如果localhost不在SAN列表中,您将得到所描述的错误。您在问题中发布的代码阻止了该错误。我想知道是否有任何情况下,为
localhost
返回
true
会成为漏洞?