gpt4 book ai didi

java - getPeerCertificates() 可以无限期或长时间阻塞吗?

转载 作者:行者123 更新时间:2023-12-04 09:30:55 38 4
gpt4 key购买 nike

考虑以下函数:

public Certificate[] getCertificates(String ip) throws Exception {
try (SSLSocket sslSocket = (SSLSocket) sslContext.getSocketFactory().createSocket()) {
SocketAddress socketAddress = new InetSocketAddress(ip, port);
sslSocket.connect(socketAddress, 10000);
Certificate[] certificates = sslSocket.getSession().getPeerCertificates();
return certificates;
}
}
这段代码可以卡在哪些条款上?基本上,我为连接阶段设置了 10 秒的超时时间,但是代码是否可能会在 getSession().getPeerCertificates() 上阻塞很长时间?部分?
请考虑 IP 和端口 可以是任意的 (甚至不是 SSL,有时甚至无法路由)
此外,这就是我启动 sslContext 的方式。
private SSLContext getSslContext() throws Exception {

SSLContext sslCtx;
sslCtx = SSLContext.getInstance("TLSv1.2");

sslCtx.init(null, new TrustManager[]{new X509TrustManager() {

private X509Certificate[] accepted;

@Override
public void checkClientTrusted(X509Certificate[] xcs, String string) {
}

@Override
public void checkServerTrusted(X509Certificate[] xcs, String string) {
accepted = xcs;
}

@Override
public X509Certificate[] getAcceptedIssuers() {
return accepted;
}
}}, null);

return sslCtx;
}

最佳答案

but is it possible that the code will block for a long time on the getSession().getPeerCertificates()


没有。 getPeerCertificates()调用 SSLSession返回由对等方在 SSL 握手中提供的证书的副本。调用 connect上一行的调用返回,握手已经完成。

关于java - getPeerCertificates() 可以无限期或长时间阻塞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62849700/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com