JavaTM 2 Platform
Standard Ed. 6

javax.net.ssl
類別 SSLContext

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

public class SSLContext
extends Object

此類別的實例表示安全Socket協議的實作,它充當用於安全Socket處理器或 SSLEngine 的處理器。用可選的一組密鑰和信任管理器及安全隨機位元組源初始化此類別。

從以下版本開始:
1.4

建構子摘要
protected SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
          創建 SSLContext 物件。
 
方法摘要
 SSLEngine createSSLEngine()
          使用此上下文創建新的 SSLEngine
 SSLEngine createSSLEngine(String peerHost, int peerPort)
          使用此上下文創建新的 SSLEngine,該上下文使用勸告同位體資訊。
 SSLSessionContext getClientSessionContext()
          返回客戶端Session上下文,它表示可供客戶端 SSL Socket連繫交換階段所使用的 SSL Session集。
static SSLContext getDefault()
          返回預設的 SSL 上下文。
 SSLParameters getDefaultSSLParameters()
          返回表示此 SSL 上下文預設設置的 SSLParameters 的副本。
static SSLContext getInstance(String protocol)
          返回實作指定安全Socket協議的 SSLContext 物件。
static SSLContext getInstance(String protocol, Provider provider)
          返回實作指定安全Socket協議的 SSLContext 物件。
static SSLContext getInstance(String protocol, String provider)
          返回實作指定安全Socket協議的 SSLContext 物件。
 String getProtocol()
          返回此 SSLContext 物件的協議名稱。
 Provider getProvider()
          返回此 SSLContext 物件的提供者。
 SSLSessionContext getServerSessionContext()
          返回伺服器Session上下文,它表示可供伺服器端 SSL Socket連繫交換階段所使用的 SSL Session集。
 SSLServerSocketFactory getServerSocketFactory()
          返回此上下文的 ServerSocketFactory 物件。
 SSLSocketFactory getSocketFactory()
          返回此上下文的 SocketFactory 物件。
 SSLParameters getSupportedSSLParameters()
          返回表示此 SSL 上下文受支持設置的 SSLParameters 的副本。
 void init(KeyManager[] km, TrustManager[] tm, SecureRandom random)
          初始化此上下文。
static void setDefault(SSLContext context)
          設置預設的 SSL 上下文。
 
從類別 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 - 協議
方法詳細資訊

getDefault

public static SSLContext getDefault()
                             throws NoSuchAlgorithmException
返回預設的 SSL 上下文。

如果預設上下文是使用 SSLContext.setDefault() 方法設置的,則返回該上下文。否則,第一次調用此方法將觸發調用 SSLContext.getInstance("Default")。如果成功,則該物件成為預設的 SSL 上下文並返回。

預設上下文立即可用並且無需初始化

返回:
預設的 SSL 上下文
拋出:
NoSuchAlgorithmException - 如果 SSLContext.getInstance() 調用失敗
從以下版本開始:
1.6

setDefault

public static void setDefault(SSLContext context)
設置預設的 SSL 上下文。它由對 getDefault() 的後續調用返回。預設上下文必須立即可用並且無需初始化

參數:
context - SSLContext
拋出:
NullPointerException - 如果 context 為 null
SecurityException - 如果安全管理器存在並且其 checkPermission 方法不允許 SSLPermission("setDefaultSSLContext")
從以下版本開始:
1.6

getInstance

public static SSLContext getInstance(String protocol)
                              throws NoSuchAlgorithmException
返回實作指定安全Socket協議的 SSLContext 物件。

此方法從首選提供者開始遍歷已註冊安全提供者列表。返回一個封裝 SSLContextSpi 實作的新 SSLContext 物件,該實作取自支持指定協議的第一個提供者。

注意,可以通過 Security.getProviders() 方法獲取已註冊提供者列表。

參數:
protocol - 所請求協議的標準名稱。有關標準協議名稱的資訊,請參見 Java Secure Socket Extension Reference Guide 的附錄 A。
返回:
新的 SSLContext 物件。
拋出:
NoSuchAlgorithmException - 如果沒有提供者支持指定協議的 TrustManagerFactorySpi 實作。
另請參見:
Provider

getInstance

public static SSLContext getInstance(String protocol,
                                     String provider)
                              throws NoSuchAlgorithmException,
                                     NoSuchProviderException
返回實作指定安全Socket協議的 SSLContext 物件。

返回一個封裝 SSLContextSpi 實作的新 SSLContext 物件,該實作取自指定的提供者。指定的提供者必須在安全提供者列表中註冊。

注意,可以通過 Security.getProviders() 方法獲取已註冊提供者列表。

參數:
protocol - 所請求協議的標準名稱。有關標準協議名稱的資訊,請參見 Java Secure Socket Extension Reference Guide 的附錄 A。
provider - 提供者的名稱。
返回:
新的 SSLContext 物件。
拋出:
NoSuchAlgorithmException - 如果不能從指定提供者獲得指定協議的 SSLContextSpi 實作。
NoSuchProviderException - 如果指定提供者未在安全提供者列表中註冊。
IllegalArgumentException - 如果提供者的名稱為 null 或空。
另請參見:
Provider

getInstance

public static SSLContext getInstance(String protocol,
                                     Provider provider)
                              throws NoSuchAlgorithmException
返回實作指定安全Socket協議的 SSLContext 物件。

返回一個封裝 SSLContextSpi 實作的新 SSLContext 物件,該實作取自指定的 Provider 物件。 注意,指定的 Provider 物件無需在提供者列表中註冊。

參數:
protocol - 所請求協議的標準名稱。有關標準協議名稱的資訊,請參見 Java Secure Socket Extension Reference Guide 的附錄 A。
provider - 提供者的實例。
返回:
新的 SSLContext 物件。
拋出:
NoSuchAlgorithmException - 如果不能從指定 Provider 物件獲得指定協議的 KeyManagerFactorySpi 實作。
IllegalArgumentException - 如果提供者的名稱為 null。
另請參見:
Provider

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 物件
拋出:
IllegalStateException - 如果 SSLContextImpl 需要初始化並且尚未調用 init()

getServerSocketFactory

public final SSLServerSocketFactory getServerSocketFactory()
返回此上下文的 ServerSocketFactory 物件。

返回:
ServerSocketFactory 物件
拋出:
IllegalStateException - 如果 SSLContextImpl 需要初始化並且尚未調用 init()

createSSLEngine

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

使用此處理器方法的應用程序不為內部Session重用策略提供提示。如果需要提示,則應該使用 createSSLEngine(String, int)

某些密碼套件(例如 Kerberos)需要遠端主機名資訊,在這種情況下不應該使用此處理器方法。

返回:
SSLEngine 物件
拋出:
UnsupportedOperationException - 如果底層提供者不實作該操作。
IllegalStateException - 如果 SSLContextImpl 需要初始化並且尚未調用 init()
從以下版本開始:
1.5

createSSLEngine

public final SSLEngine createSSLEngine(String peerHost,
                                       int peerPort)
使用此上下文創建新的 SSLEngine,該上下文使用勸告同位體資訊。

使用此處理器方法的應用程序為內部Session重用策略提供提示。

某些密碼套件(例如 Kerberos)需要遠端主機名資訊,在這種情況下需要指定 peerHost。

參數:
peerHost - 主機的非授權名
peerPort - 非授權埠號
返回:
新的 SSLEngine 物件
拋出:
UnsupportedOperationException - 如果底層提供者不實作該操作。
IllegalStateException - 如果 SSLContextImpl 需要初始化並且尚未調用 init()
從以下版本開始:
1.5

getServerSessionContext

public final SSLSessionContext getServerSessionContext()
返回伺服器Session上下文,它表示可供伺服器端 SSL Socket連繫交換階段所使用的 SSL Session集。

此上下文在一些環境下可能不可用,在這種情況下此方法返回 null。例如,當底層 SSL 提供者不提供 SSLSessionContext 介面實作時,此方法返回 null。否則返回非 null Session上下文。

返回:
綁定到此 SSL 上下文的伺服器Session上下文

getClientSessionContext

public final SSLSessionContext getClientSessionContext()
返回客戶端Session上下文,它表示可供客戶端 SSL Socket連繫交換階段所使用的 SSL Session集。

此上下文在一些環境下可能不可用,在這種情況下此方法返回 null。例如,當底層 SSL 提供者不提供 SSLSessionContext 介面實作時,此方法返回 null。否則返回非 null Session上下文。

返回:
綁定到此 SSL 上下文的客戶端Session上下文

getDefaultSSLParameters

public final SSLParameters getDefaultSSLParameters()
返回表示此 SSL 上下文預設設置的 SSLParameters 的副本。

該參數將始終具有密碼套件和設置為非 null 值的協議陣列。

返回:
具有預設設置的 SSLParameters 物件的副本
拋出:
UnsupportedOperationException - 如果不能獲得預設的 SSL 參數。
從以下版本開始:
1.6

getSupportedSSLParameters

public final SSLParameters getSupportedSSLParameters()
返回表示此 SSL 上下文受支持設置的 SSLParameters 的副本。

該參數將始終具有密碼套件和設置為非 null 值的協議陣列。

返回:
具有受支持設置的 SSLParameters 物件的副本
拋出:
UnsupportedOperationException - 如果不能獲得受支持的 SSL 參數。
從以下版本開始:
1.6

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only