java.lang.Object
javax.net.SocketFactory
javax.net.ssl.SSLSocketFactory
SSLSocketFactory
创建SSLSocket
。
- 自1.4版本起:
- 1.4
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncreateSocket
(Socket s, InputStream consumed, boolean autoClose) abstract Socket
createSocket
(Socket s, String host, int port, boolean autoClose) 返回一个在已连接到指定主机的现有套接字上层的套接字,在给定端口处。static SocketFactory
返回默认的SSL套接字工厂。abstract String[]
返回默认启用的密码套件列表。abstract String[]
返回可以在SSL连接上启用的密码套件的名称。Methods declared in class javax.net.SocketFactory
createSocket, createSocket, createSocket, createSocket, createSocket
-
Constructor Details
-
SSLSocketFactory
public SSLSocketFactory()构造函数仅供子类使用。
-
-
Method Details
-
getDefault
返回默认的SSL套接字工厂。第一次调用此方法时,将检查安全属性"ssl.SocketFactory.provider"。如果它不为null,则加载并实例化该名称的类。如果成功且该对象是SSLSocketFactory的实例,则将其设置为默认的SSL套接字工厂。
否则,此方法返回
SSLContext.getDefault().getSocketFactory()
。如果该调用失败,则返回一个无效的工厂。- 返回:
-
默认的
SocketFactory
- 参见:
-
getDefaultCipherSuites
返回默认启用的密码套件列表。除非启用了不同的列表,否则在SSL连接上进行握手将使用这些密码套件之一。这些默认值的最低服务质量要求保护机密性和服务器身份验证(即,没有匿名密码套件)。返回的数组包括来自Java安全标准算法名称规范的JSSE密码套件名称列表中的标准密码套件,还可能包括提供程序支持的其他密码套件。
- 返回:
- 默认启用的密码套件数组
- 参见:
-
getSupportedCipherSuites
返回可以在SSL连接上启用的密码套件的名称。通常,默认情况下只有这些密码套件的子集会被启用,因为此列表可能包括不符合这些默认要求的服务质量的密码套件。这样的密码套件在专用应用程序中很有用。返回的数组包括来自Java安全标准算法名称规范的JSSE密码套件名称列表中的标准密码套件,还可能包括提供程序支持的其他密码套件。
- 返回:
- 密码套件名称数组
- 参见:
-
createSocket
public abstract Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException 返回一个在已连接到指定主机的现有套接字上层的套接字,在给定端口处。当通过代理进行SSL隧道或在现有套接字上协商使用SSL时,可以使用此构造函数。主机和端口指的是逻辑对等方目的地。此套接字使用为此工厂建立的套接字选项进行配置。- 参数:
-
s
- 现有套接字 -
host
- 服务器主机 -
port
- 服务器端口 -
autoClose
- 当关闭此套接字时关闭底层套接字 - 返回:
- 连接到指定主机和端口的套接字
- 抛出:
-
IOException
- 创建套接字时发生I/O错误 -
NullPointerException
- 如果参数s为null
-
createSocket
创建一个在现有连接的套接字上层的服务器模式Socket
,并能够读取已经从Socket
的基础InputStream
中消耗/移除的数据。此方法可供需要观察入站数据但仍需创建有效SSL/TLS连接的服务器应用程序使用:例如,检查服务器名称指示(SNI)扩展(请参阅TLS扩展(RFC6066)第3节)。在调用此方法之前,已从基础
InputStream
中移除的数据应加载到consumed
流中,可能使用ByteArrayInputStream
。当此Socket
开始握手时,它将读取consumed
中的所有数据,直到达到EOF
,然后所有后续数据将像往常一样从基础InputStream
中读取。返回的套接字使用为此工厂建立的套接字选项进行配置,并在握手时设置为使用服务器模式(请参见
SSLSocket.setUseClientMode(boolean)
)。- 参数:
-
s
- 现有套接字 -
consumed
- 已从现有Socket
的基础InputStream
中移除的消耗入站网络数据。如果没有移除任何数据,则此参数可以为null
。 -
autoClose
- 当关闭此套接字时关闭底层套接字。 - 返回:
-
符合此工厂建立的套接字选项的
Socket
- 抛出:
-
IOException
- 创建套接字时发生I/O错误 -
UnsupportedOperationException
- 如果底层提供程序未实现该操作 -
NullPointerException
- 如果s
为null
- 自1.8版本起:
- 1.8
-