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
会成为漏洞?