模块 java.base

类 SSLContextSpi

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

public abstract class SSLContextSpi extends Object
这个类定义了服务提供商接口 (SPI) 为 SSLContext 类。

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

自从:
1.4
参见:
  • 构造方法详细信息

    • SSLContextSpi

      public SSLContextSpi()
      子类调用的构造方法。
  • 方法详情

    • 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 默认使用客户端或服务模式进行 (D)TLS 连接,则它是特定于提供程序的。 JDK SunJSSE 提供程序实现默认使用服务模式。但是,建议始终在调用 SSLEngine 的其他方法之前通过调用 SSLEngine.setUseClientMode() 显式设置所需的模式。
      返回:
      SSLEngine 对象
      抛出:
      IllegalStateException - 如果 SSLContextImpl 需要初始化并且尚未调用 engineInit()
      自从:
      1.5
      参见:
    • engineCreateSSLEngine

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

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

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

      实现注意事项:
      如果返回的 SSLEngine 默认使用客户端或服务模式进行 (D)TLS 连接,则它是特定于提供程序的。 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()
      返回 SSLParameters 的副本,指示此 SSL 上下文的默认设置。

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

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

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

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

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

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

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