- java.lang.Object
-
- javax.net.SocketFactory
-
- javax.net.ssl.SSLSocketFactory
-
public abstract class SSLSocketFactory extends SocketFactory
SSLSocketFactory
s创建SSLSocket
s。- 从以下版本开始:
- 1.4
- 另请参见:
-
SSLSocket
-
-
构造方法摘要
构造方法 Constructor 描述 SSLSocketFactory()
构造方法仅由子类使用。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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连接上使用的密码套件的名称。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class javax.net.SocketFactory
createSocket, createSocket, createSocket, createSocket, createSocket
-
-
-
-
方法详细信息
-
getDefault
public static SocketFactory getDefault()
返回默认的SSL套接字工厂。第一次调用此方法时,会检查安全属性“ssl.SocketFactory.provider”。 如果它是非空的,则加载并实例化该名称的类。 如果这是成功的,并且该对象是SSLSocketFactory的实例,则它将成为默认的SSL套接字工厂。
否则,此方法返回
SSLContext.getDefault().getSocketFactory()
。 如果该通话失败,则返回不工作的工厂。- 结果
-
默认为
SocketFactory
- 另请参见:
-
SSLContext.getDefault()
-
getDefaultCipherSuites
public abstract String[] getDefaultCipherSuites()
返回默认启用的密码套件列表。 除非启用不同的列表,否则SSL连接上的握手将使用这些密码套件之一。 这些默认值的最低服务质量需要机密性保护和服务器身份验证(即无匿名密码套件)。返回的数组包括来自Java加密体系结构标准算法名称文档的JSSE Cipher Suite Names部分中标准密码套件名称列表的密码套件,还可以包括提供商支持的其他密码套件。
- 结果
- 默认启用的密码套件阵列
- 另请参见:
-
getSupportedCipherSuites()
-
getSupportedCipherSuites
public abstract String[] getSupportedCipherSuites()
返回可以在SSL连接上使用的密码套件的名称。 通常,默认情况下实际上只能启用这些子集,因为此列表可能包括不符合这些默认值的服务质量要求的密码套件。 这样的密码套件在专门的应用中是有用的。返回的阵列包括来自Java加密体系结构标准算法名称文档的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为空
-
createSocket
public Socket createSocket(Socket s, InputStream consumed, boolean autoClose) throws IOException
创建服务器模式Socket
分层在现有连接的套接字上,并且能够读取已从Socket
的底层InputStream
中消耗/删除的数据 。该方法可以由需要观察入站数据的服务器应用程序使用,但仍然创建有效的SSL / TLS连接:例如,检查服务器名称指示(SNI)扩展(见第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
-
-