JavaTM 2 Platform
Standard Ed. 5.0

javax.net.ssl
类 SSLContext

java.lang.Object
  继承者 javax.net.ssl.SSLContext

public class SSLContext
extends Object

此类的实例表示安全套接字协议的实现,它充当用于安全套接字工厂或 SSLEngine 的工厂。用可选的一组密钥和信任管理器及安全随机字节源初始化此类。

从以下版本开始:
1.4

构造方法摘要
protected SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
          创建 SSLContext 对象。
 
方法摘要
 SSLEngine createSSLEngine()
          使用此上下文创建新的 SSLEngine
 SSLEngine createSSLEngine(String peerHost, int peerPort)
          使用此上下文创建新的 SSLEngine,该上下文使用劝告同位体信息。
 SSLSessionContext getClientSessionContext()
          返回客户端会话上下文,它表示可供客户端 SSL 套接字握手阶段所使用的 SSL 会话集。
static SSLContext getInstance(String protocol)
          生成实现指定安全套接字协议的 SSLContext 对象。
static SSLContext getInstance(String protocol, Provider provider)
          根据指定提供程序生成实现指定安全套接字协议的 SSLContext 对象。
static SSLContext getInstance(String protocol, String provider)
          根据指定提供程序生成实现指定安全套接字协议的 SSLContext 对象。
 String getProtocol()
          返回此 SSLContext 对象的协议名称。
 Provider getProvider()
          返回此 SSLContext 对象的提供程序。
 SSLSessionContext getServerSessionContext()
          返回服务器会话上下文,它表示可供服务器端 SSL 套接字握手阶段所使用的 SSL 会话集。
 SSLServerSocketFactory getServerSocketFactory()
          返回此上下文的 ServerSocketFactory 对象。
 SSLSocketFactory getSocketFactory()
          返回此上下文的 SocketFactory 对象。
 void init(KeyManager[] km, TrustManager[] tm, SecureRandom random)
          初始化此上下文。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SSLContext

protected SSLContext(SSLContextSpi contextSpi,
                     Provider provider,
                     String protocol)
创建 SSLContext 对象。

参数:
contextSpi - 代理
provider - 提供程序
protocol - 协议
方法详细信息

getInstance

public static SSLContext getInstance(String protocol)
                              throws NoSuchAlgorithmException
生成实现指定安全套接字协议的 SSLContext 对象。

如果默认的提供程序包提供了请求的密钥管理算法实现,则返回包含该实现的 SSLContext 实例。如果默认提供程序包中未提供算法,则搜索其他的包。

参数:
protocol - 所请求协议的标准名称。
返回:
新的 SSLContext 对象
抛出:
NoSuchAlgorithmException - 如果指定协议在默认提供程序包或搜索到的其他任何提供程序包中不可用。

getInstance

public static SSLContext getInstance(String protocol,
                                     String provider)
                              throws NoSuchAlgorithmException,
                                     NoSuchProviderException
根据指定提供程序生成实现指定安全套接字协议的 SSLContext 对象。

参数:
protocol - 所请求协议的标准名称。
provider - 提供程序的名称
返回:
新的 SSLContext 对象
抛出:
NoSuchAlgorithmException - 如果指定提供程序中的协议不可用。
NoSuchProviderException - 如果指定的提供程序未配置。
IllegalArgumentException - 如果提供程序的名称为 null 或空。

getInstance

public static SSLContext getInstance(String protocol,
                                     Provider provider)
                              throws NoSuchAlgorithmException
根据指定提供程序生成实现指定安全套接字协议的 SSLContext 对象。

参数:
protocol - 所请求协议的标准名称。
provider - 提供程序的实例
返回:
新的 SSLContext 对象
抛出:
NoSuchAlgorithmException - 如果指定提供程序中的协议不可用。
NullPointerException - 如果提供程序的名称为 null 或空。

getProtocol

public final String getProtocol()
返回此 SSLContext 对象的协议名称。

这与创建此 SSLContext 对象的某个 getInstance 调用中所指定的名称相同。

返回:
SSLContext 对象的协议名称。

getProvider

public final Provider getProvider()
返回此 SSLContext 对象的提供程序。

返回:
SSLContext 对象的提供程序

init

public final void init(KeyManager[] km,
                       TrustManager[] tm,
                       SecureRandom random)
                throws KeyManagementException
初始化此上下文。前两个参数都可以为 null,在这种情况下将搜索装入的安全提供程序来寻找适当工厂的最高优先级实现。同样,安全的 random 参数也可以为 null,在这种情况下将使用默认的实现。

只有数组中的第一个特定密钥和/或信任管理器实现类型的实例被使用。(例如,只有数组中的第一个 javax.net.ssl.X509KeyManager 被使用。)

参数:
km - 身份验证密钥源或 null
tm - 同位体身份验证信任决策源或 null
random - 此生成器的随机源或 null
抛出:
KeyManagementException - 如果此操作失败

getSocketFactory

public final SSLSocketFactory getSocketFactory()
返回此上下文的 SocketFactory 对象。

返回:
SocketFactory 对象

getServerSocketFactory

public final SSLServerSocketFactory getServerSocketFactory()
返回此上下文的 ServerSocketFactory 对象。

返回:
ServerSocketFactory 对象

createSSLEngine

public final SSLEngine createSSLEngine()
使用此上下文创建新的 SSLEngine

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

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

返回:
SSLEngine 对象
抛出:
UnsupportedOperationException - 如果基础提供程序不实现该操作。
从以下版本开始:
1.5

createSSLEngine

public final SSLEngine createSSLEngine(String peerHost,
                                       int peerPort)
使用此上下文创建新的 SSLEngine,该上下文使用劝告同位体信息。

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

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

参数:
peerHost - 主机的非授权名
peerPort - 非授权端口
返回:
新的 SSLEngine 对象
抛出:
UnsupportedOperationException - 如果基础提供程序不实现该操作。
从以下版本开始:
1.5

getServerSessionContext

public final SSLSessionContext getServerSessionContext()
返回服务器会话上下文,它表示可供服务器端 SSL 套接字握手阶段所使用的 SSL 会话集。

此上下文在一些环境下可能不可用,在这种情况下此方法返回 null。例如,当基础 SSL 提供程序不提供 SSLSessionContext 接口实现时,此方法返回 null。否则返回非 null 会话上下文。

返回:
绑定到此 SSL 上下文的服务器会话上下文

getClientSessionContext

public final SSLSessionContext getClientSessionContext()
返回客户端会话上下文,它表示可供客户端 SSL 套接字握手阶段所使用的 SSL 会话集。

此上下文在一些环境下可能不可用,在这种情况下此方法返回 null。例如,当基础 SSL 提供程序不提供 SSLSessionContext 接口实现时,此方法返回 null。否则返回非 null 会话上下文。

返回:
绑定到此 SSL 上下文的客户端会话上下文

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策