- java.lang.Object
-
- javax.net.SocketFactory
-
- javax.net.ssl.SSLSocketFactory
-
public abstract class SSLSocketFactoryextends SocketFactory
SSLSocketFactory
s创建SSLSocket
s。- 从以下版本开始:
- 1.4
- 另请参见:
-
SSLSocket
-
-
构造方法摘要
构造方法 构造器 描述 SSLSocketFactory()
构造函数仅由子类使用。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Socket
createSocket(Socket s, InputStream consumed, boolean autoClose)
创建一个分层在现有连接套接字上的服务器模式Socket
,并且能够读取已从Socket
的底层InputStream
中使用/删除的数据 。abstract Socket
createSocket(Socket s, String host, int port, boolean autoClose)
返回在给定端口上连接到指定主机的现有套接字上分层的套接字。static SocketFactory
getDefault()
返回默认的SSL套接字工厂。abstract String[]
getDefaultCipherSuites()
返回默认启用的密码套件列表。abstract String[]
getSupportedCipherSuites()
返回可以在SSL连接上启用的密码套件的名称。-
声明方法的类 javax.net.SocketFactory
createSocket, createSocket, createSocket, createSocket, createSocket
-
-
-
-
方法详细信息
-
getDefault
public static SocketFactory getDefault()
返回默认的SSL套接字工厂。第一次调用此方法时,将检查安全属性“ssl.SocketFactory.provider”。 如果它为非null,则加载并实例化该名称的类。 如果成功并且该对象是SSLSocketFactory的实例,则它将成为默认的SSL套接字工厂。
否则,此方法返回
SSLContext.getDefault().getSocketFactory()
。 如果该调用失败,则返回一个不起作用的工厂。- 结果
- 默认
SocketFactory
- 另请参见:
-
SSLContext.getDefault()
-
getDefaultCipherSuites
public abstract String[] getDefaultCipherSuites()
返回默认启用的密码套件列表。 除非启用了不同的列表,否则SSL连接上的握手将使用其中一个密码套件。 这些默认值的最低服务质量要求机密性保护和服务器身份验证(即,没有匿名密码套件)。返回的数组包括Java Cryptography体系结构标准算法名称文档的JSSE Cipher Suite Names部分中标准密码套件名称列表中的密码套件,还可能包括提供程序支持的其他密码套件。
- 结果
- 默认情况下启用的密码套件数组
- 另请参见:
-
getSupportedCipherSuites()
-
getSupportedCipherSuites
public abstract String[] getSupportedCipherSuites()
返回可以在SSL连接上启用的密码套件的名称。 通常,默认情况下实际上仅启用其中的一部分,因为此列表可能包括不符合这些默认值的服务质量要求的密码套件。 这种密码套件在专门的应用中很有用。返回的数组包括Java Cryptography体系结构标准算法名称文档的JSSE Cipher Suite Names部分中的标准密码套件名称列表中的密码套件,还可能包括提供程序支持的其他密码套件。
- 结果
- 一组密码套件名称
- 另请参见:
-
getDefaultCipherSuites()
-
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
public Socket createSocket(Socket s, InputStream consumed, boolean autoClose) throws IOException
在现有连接套接字上创建分层服务器模式Socket
,并且能够读取已从Socket
的基础InputStream
中使用/删除的数据 。此方法可由需要观察入站数据但仍创建有效SSL / TLS连接的服务器应用程序使用:例如,检查服务器名称指示(SNI)扩展(请参阅第45条,共TLS Extensions (RFC6066)条 )。 在调用此方法之前,应将已从基础
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
-
-