Module java.base
Package javax.net.ssl

Class SSLContextSpi

java.lang.Object
javax.net.ssl.SSLContextSpi

public abstract class SSLContextSpi extends Object
此类为SSLContext类定义了服务提供者接口SPI)。

此类中的所有抽象方法必须由每个希望提供特定SSL上下文实现的加密服务提供者来实现。

自版本:
1.4
参见:
  • Constructor Details

    • SSLContextSpi

      public SSLContextSpi()
      子类调用的构造函数。
  • Method Details

    • engineInit

      protected abstract void engineInit(KeyManager[] km, TrustManager[] tm, SecureRandom sr) throws KeyManagementException
      初始化此上下文。
      参数:
      km - 认证密钥的来源
      tm - 对等认证信任决策的来源
      sr - 随机源
      抛出:
      KeyManagementException - 如果此操作失败
      参见:
    • engineGetSocketFactory

      protected abstract SSLSocketFactory engineGetSocketFactory()
      返回此上下文的SocketFactory对象。
      返回:
      SocketFactory对象
      抛出:
      UnsupportedOperationException - 如果底层提供程序未实现该操作。
      IllegalStateException - 如果SSLContextImpl需要初始化且未调用engineInit()
      参见:
    • engineGetServerSocketFactory

      protected abstract SSLServerSocketFactory engineGetServerSocketFactory()
      返回此上下文的ServerSocketFactory对象。
      返回:
      ServerSocketFactory对象
      抛出:
      UnsupportedOperationException - 如果底层提供程序未实现该操作。
      IllegalStateException - 如果SSLContextImpl需要初始化且未调用engineInit()
      参见:
    • engineCreateSSLEngine

      protected abstract SSLEngine engineCreateSSLEngine()
      使用此上下文创建一个新的SSLEngine

      使用此工厂方法的应用程序不提供内部会话重用策略的提示。如果需要提示,应改用engineCreateSSLEngine(String, int)

      某些密码套件(如Kerberos)需要远程主机名信息,在这种情况下,不应使用此工厂方法。

      实现注意:
      返回的SSLEngine默认使用客户端或服务器模式是特定于提供程序的。JDK SunJSSE提供程序实现默认使用服务器模式。但是,建议始终通过在调用SSLEngine的其他方法之前调用SSLEngine.setUseClientMode()来显式设置所需的模式。
      返回:
      SSLEngine对象
      抛出:
      IllegalStateException - 如果SSLContextImpl需要初始化且未调用engineInit()
      自版本:
      1.5
      参见:
    • engineCreateSSLEngine

      protected abstract SSLEngine engineCreateSSLEngine(String host, int port)
      使用此上下文创建一个SSLEngine

      使用此工厂方法的应用程序提供内部会话重用策略的提示。

      某些密码套件(如Kerberos)需要远程主机名信息,在这种情况下,需要指定peerHost。

      实现注意:
      返回的SSLEngine默认使用客户端或服务器模式是特定于提供程序的。JDK SunJSSE提供程序实现默认使用服务器模式。但是,建议始终通过在调用SSLEngine的其他方法之前调用SSLEngine.setUseClientMode()来显式设置所需的模式。
      参数:
      host - 主机的非权威名称
      port - 非权威端口
      返回:
      SSLEngine对象
      抛出:
      IllegalStateException - 如果SSLContextImpl需要初始化且未调用engineInit()
      自版本:
      1.5
      参见:
    • engineGetServerSessionContext

      protected abstract SSLSessionContext engineGetServerSessionContext()
      返回此上下文的服务器SSLSessionContext对象。
      返回:
      SSLSessionContext对象
      参见:
    • engineGetClientSessionContext

      protected abstract SSLSessionContext engineGetClientSessionContext()
      返回此上下文的客户端SSLSessionContext对象。
      返回:
      SSLSessionContext对象
      参见:
    • engineGetDefaultSSLParameters

      protected SSLParameters engineGetDefaultSSLParameters()
      返回指示此SSL上下文的默认设置的SSLParameters副本。

      参数将始终将密码套件和协议数组设置为非空值。

      默认实现通过调用此上下文的SocketFactory的SocketFactory.createSocket()方法创建的SSLSocket获取参数。

      返回:
      具有默认设置的SSLParameters对象的副本
      抛出:
      UnsupportedOperationException - 如果无法获取默认SSL参数。
      自版本:
      1.6
    • engineGetSupportedSSLParameters

      protected SSLParameters engineGetSupportedSSLParameters()
      返回指示此SSL上下文的最大支持设置的SSLParameters副本。

      参数将始终将密码套件和协议数组设置为非空值。

      默认实现通过调用此上下文的SocketFactory的SocketFactory.createSocket()方法创建的SSLSocket获取参数。

      返回:
      具有最大支持设置的SSLParameters对象的副本
      抛出:
      UnsupportedOperationException - 如果无法获取支持的SSL参数。
      自版本:
      1.6