JavaTM 2 Platform
Standard Ed. 6

javax.naming.ldap
類別 StartTlsResponse

java.lang.Object
  繼承者 javax.naming.ldap.StartTlsResponse
所有已實作的介面:
Serializable, ExtendedResponse

public abstract class StartTlsResponse
extends Object
implements ExtendedResponse

此類別實作在 Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security 中定義的 StartTLS 的 LDAPv3 擴展回應。 StartTLS 的物件標識符為 1.3.6.1.4.1.1466.20037,沒有定義任何擴展回應值。

使用 Start TLS 擴展請求和回應在與 JNDI 上下文(對該上下文調用 extendedOperation())關聯的現有 LDAP 連接上建立 TLS 連接。通常,JNDI 程序使用以下 Start TLS 擴展請求和回應類別。

 import javax.naming.ldap.*;
 
 // Open an LDAP association
 LdapContext ctx = new InitialLdapContext();

 // Perform a StartTLS extended operation
 StartTlsResponse tls =
     (StartTlsResponse) ctx.extendedOperation(new StartTlsRequest());

 // Open a TLS connection (over the existing LDAP association) and get details
 // of the negotiated TLS session: cipher suite, peer certificate, ...
 SSLSession session = tls.negotiate();

 // ... use ctx to perform protected LDAP operations

 // Close the TLS connection (revert back to the underlying LDAP association)
 tls.close();

 // ... use ctx to perform unprotected LDAP operations

 // Close the LDAP association
 ctx.close;
 

從以下版本開始:
1.4
另請參見:
StartTlsRequest, 序列化表格

欄位摘要
static String OID
          StartTLS 擴展回應的分派物件標識符為 1.3.6.1.4.1.1466.20037。
 
建構子摘要
protected StartTlsResponse()
          建構 StartTLS 擴展回應。
 
方法摘要
abstract  void close()
          妥善地關閉 TLS 連接並轉換回底層連接。
 byte[] getEncodedValue()
          檢索 StartTLS 回應的 ASN.1 BER 編碼值。
 String getID()
          檢索 StartTLS 回應的物件標識符字元串。
abstract  SSLSession negotiate()
          使用預設的 SSL Socket處理器協商 TLS Session。
abstract  SSLSession negotiate(SSLSocketFactory factory)
          使用 SSL Socket處理器協商 TLS Session。
abstract  void setEnabledCipherSuites(String[] suites)
          覆寫在 TLS 連接上啟用的密碼套件的預設列表。
abstract  void setHostnameVerifier(HostnameVerifier verifier)
          設置在已完成 TLS 連繫交換且預設主機名校驗失敗後供 negotiate() 使用的主機名校驗器。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

OID

public static final String OID
StartTLS 擴展回應的分派物件標識符為 1.3.6.1.4.1.1466.20037。

另請參見:
常數欄位值
建構子詳細資訊

StartTlsResponse

protected StartTlsResponse()
建構 StartTLS 擴展回應。具體子類別必須具有不帶參數的公共建構子。

方法詳細資訊

getID

public String getID()
檢索 StartTLS 回應的物件標識符字元串。

指定者:
介面 ExtendedResponse 中的 getID
返回:
物件標識符字元串 "1.3.6.1.4.1.1466.20037"。

getEncodedValue

public byte[] getEncodedValue()
檢索 StartTLS 回應的 ASN.1 BER 編碼值。因為回應沒有定義任何值,所以始終返回 null。

指定者:
介面 ExtendedResponse 中的 getEncodedValue
返回:
null 值。

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String[] suites)
覆寫在 TLS 連接上啟用的密碼套件的預設列表。密碼套件必須已經作為受支持的項由 SSLSocketFactory.getSupportedCipherSuites() 列出。即使已經啟用套件,它仍然有可能不可用,因為有可能同位體不支持它,或者必需的證書(或私鑰)不可用。

參數:
suites - 要啟用的所有密碼套件的非 null 名稱列表。
另請參見:
negotiate()

setHostnameVerifier

public abstract void setHostnameVerifier(HostnameVerifier verifier)
設置在已完成 TLS 連繫交換且預設主機名校驗失敗後供 negotiate() 使用的主機名校驗器。setHostnameVerifier() 必須在調用 negotiate() 前調用才能生效。如果在 negotiate() 之後調用,則此方法不執行任何操作。

參數:
verifier - 非 null 主機名校驗器回調。
另請參見:
negotiate()

negotiate

public abstract SSLSession negotiate()
                              throws IOException
使用預設的 SSL Socket處理器協商 TLS Session。

此方法等效於 negotiate(null)

返回:
協商的 SSL Session
拋出:
IOException - 如果在建立 TLS Session時遇到 IO 錯誤。
另請參見:
setEnabledCipherSuites(java.lang.String[]), setHostnameVerifier(javax.net.ssl.HostnameVerifier)

negotiate

public abstract SSLSession negotiate(SSLSocketFactory factory)
                              throws IOException
使用 SSL Socket處理器協商 TLS Session。

使用提供的 SSL Socket處理器創建 SSL Socket,並將其附加到現有連接上。執行 TLS 連繫交換並返回協商的Session資訊。

如果密碼套件是通過 setEnabledCipherSuites 設置的,則需要在 TLS 連繫交換開始之前啟用這些套件。

主機名校驗在 TLS 連繫交換完成之後執行。預設的主機名校驗將伺服器主機名與存在於伺服器證書中的主機名資訊進行比對。如果此校驗失敗且沒有通過 setHostnameVerifier 設置任何回調,則協商失敗。如果此校驗失敗但通過 setHostnameVerifier 設置了回調,則使用回調確定協商是否成功。

如果發生錯誤,則關閉 SSL Socket並拋出 IOException。底層連接保持原樣。

參數:
factory - 要使用的 SSL Socket處理器(可能為 null)。如果為 null,則使用預設的 SSL Socket處理器。
返回:
協商的 SSL Session
拋出:
IOException - 如果在建立 TLS Session時遇到 IO 錯誤。
另請參見:
setEnabledCipherSuites(java.lang.String[]), setHostnameVerifier(javax.net.ssl.HostnameVerifier)

close

public abstract void close()
                    throws IOException
妥善地關閉 TLS 連接並轉換回底層連接。

拋出:
IOException - 如果在關閉 TLS 連接時遇到 IO 錯誤

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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