Module  java.base
软件包  javax.net.ssl

Class SSLSocketFactory



  • public abstract class SSLSocketFactory
    extends SocketFactory
    SSLSocketFactory s创建 SSLSocket s。
    从以下版本开始:
    1.4
    另请参见:
    SSLSocket
    • 构造方法详细信息

      • SSLSocketFactory

        public SSLSocketFactory​()
        构造方法仅由子类使用。
    • 方法详细信息

      • 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 - 如果 snull
        从以下版本开始:
        1.8