|
|
@@ -1,5 +1,7 @@
|
|
|
package cn.hutool.http.ssl;
|
|
|
|
|
|
+import cn.hutool.core.util.ArrayUtil;
|
|
|
+
|
|
|
import java.io.IOException;
|
|
|
import java.net.InetAddress;
|
|
|
import java.net.Socket;
|
|
|
@@ -13,7 +15,6 @@ import javax.net.ssl.SSLSocketFactory;
|
|
|
* 自定义支持协议类型的SSLSocketFactory
|
|
|
*
|
|
|
* @author looly
|
|
|
- *
|
|
|
*/
|
|
|
public class CustomProtocolsSSLFactory extends SSLSocketFactory {
|
|
|
|
|
|
@@ -45,45 +46,42 @@ public class CustomProtocolsSSLFactory extends SSLSocketFactory {
|
|
|
|
|
|
@Override
|
|
|
public Socket createSocket() throws IOException {
|
|
|
- SSLSocket sslSocket = (SSLSocket) base.createSocket();
|
|
|
+ final SSLSocket sslSocket = (SSLSocket) base.createSocket();
|
|
|
resetProtocols(sslSocket);
|
|
|
return sslSocket;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public SSLSocket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException {
|
|
|
- SSLSocket socket = (SSLSocket) base.createSocket(s, host, port, autoClose);
|
|
|
+ final SSLSocket socket = (SSLSocket) base.createSocket(s, host, port, autoClose);
|
|
|
resetProtocols(socket);
|
|
|
return socket;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Socket createSocket(String host, int port) throws IOException {
|
|
|
- SSLSocket socket = (SSLSocket) base.createSocket(host, port);
|
|
|
+ final SSLSocket socket = (SSLSocket) base.createSocket(host, port);
|
|
|
resetProtocols(socket);
|
|
|
return socket;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException {
|
|
|
-
|
|
|
- SSLSocket socket = (SSLSocket) base.createSocket(host, port, localHost, localPort);
|
|
|
+ final SSLSocket socket = (SSLSocket) base.createSocket(host, port, localHost, localPort);
|
|
|
resetProtocols(socket);
|
|
|
return socket;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Socket createSocket(InetAddress host, int port) throws IOException {
|
|
|
-
|
|
|
- SSLSocket socket = (SSLSocket) base.createSocket(host, port);
|
|
|
+ final SSLSocket socket = (SSLSocket) base.createSocket(host, port);
|
|
|
resetProtocols(socket);
|
|
|
return socket;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException {
|
|
|
-
|
|
|
- SSLSocket socket = (SSLSocket) base.createSocket(address, port, localAddress, localPort);
|
|
|
+ final SSLSocket socket = (SSLSocket) base.createSocket(address, port, localAddress, localPort);
|
|
|
resetProtocols(socket);
|
|
|
return socket;
|
|
|
}
|
|
|
@@ -94,7 +92,9 @@ public class CustomProtocolsSSLFactory extends SSLSocketFactory {
|
|
|
* @param socket SSLSocket
|
|
|
*/
|
|
|
private void resetProtocols(SSLSocket socket) {
|
|
|
- socket.setEnabledProtocols(protocols);
|
|
|
+ if(ArrayUtil.isNotEmpty(this.protocols)){
|
|
|
+ socket.setEnabledProtocols(this.protocols);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|