|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface SSLSession
在 SSL 中,Session用來描述兩個實體間正在發生的關係。每個 SSL 連接在某一時刻都會涉及一個Session,但是該Session可以同時地或相繼地用在這些實體的多個連接上。還可以用不同的Session代替某一連接上使用的Session。Session是作為 SSL 連繫交換協議的一部分創建或重新加入的。影響安全或資源使用的策略或由應用程序顯式調用 invalidate
可能使Session無效。Session管理策略通常用來調優性能。
除了標準Session屬性之外,SSL Session還會公開以下這些只讀屬性:
可以顯式地使Session無效。當遇到某種錯誤時,也可以隱式地使Session無效。
方法摘要 | |
---|---|
int |
getApplicationBufferSize()
獲取使用此Session時期望的最大應用程序資料的當前大小。 |
String |
getCipherSuite()
返回Session中的所有連接所使用的 SSL 密碼套件的名稱。 |
long |
getCreationTime()
返回創建此Session表示的時間,該時間是自協調世界時 1970 年 1 月 1 日午夜起經過的毫秒數。 |
byte[] |
getId()
返回分派給此Session的標識符。 |
long |
getLastAccessedTime()
返回此Session表示上一次被Session層應用存取的時間,該時間是自協調世界時 1970 年 1 月 1 日午夜起經過的毫秒數。 |
Certificate[] |
getLocalCertificates()
返回連繫交換期間發送給同位體的證書。 |
Principal |
getLocalPrincipal()
返回連繫交換期間發送給同位體的主體。 |
int |
getPacketBufferSize()
獲取使用此Session時期望的最大 SSL/TLS 套件的當前大小。 |
X509Certificate[] |
getPeerCertificateChain()
返回同級身份,該同級身份被標識作為定義Session的一部分。 |
Certificate[] |
getPeerCertificates()
返回同級身份,該同級身份是作為定義Session的一部分而建立的。 |
String |
getPeerHost()
返回此Session中同位體的主機名稱。 |
int |
getPeerPort()
返回此Session中同位體的埠號號。 |
Principal |
getPeerPrincipal()
返回同級身份,該同級身份是作為定義Session的一部分而建立的。 |
String |
getProtocol()
返回Session中的所有連接使用的協議的標準名稱。 |
SSLSessionContext |
getSessionContext()
返回此Session所在的上下文。 |
Object |
getValue(String name)
返回Session的應用層資料中的綁定到給定名稱的物件。 |
String[] |
getValueNames()
返回綁定到Session中的所有應用層資料物件的名稱組成的陣列。 |
void |
invalidate()
使Session失效。 |
boolean |
isValid()
返回此Session對於恢復和加入是否是有效的和可用的。 |
void |
putValue(String name,
Object value)
使用給定的 name 將指定的 value 物件綁定到Session的應用層資料中。 |
void |
removeValue(String name)
移除Session的應用層資料中綁定到給定名稱的物件。 |
方法詳細資訊 |
---|
byte[] getId()
SSLSessionContext getSessionContext()
此上下文在一些環境中可能不可用,在這種情況下,此方法返回 null。
如果存在上下文並且已安裝了一個安全管理器,則調用者可能需要相應的權限才能存取上下文,否則可能拋出安全異常。在 Java 環境中,使用 SSLPermission("getSSLSessionContext")
權限調用安全管理器的 checkPermission
方法。
SecurityException
- 如果調用執行緒沒有獲取 SSL Session上下文的權限。long getCreationTime()
long getLastAccessedTime()
存取將指示使用Session資料建立一個新的連接。存取期間並不反映應用級操作,例如獲取或設置與Session相關的值。
此資訊在Session管理策略中特別有用。例如,Session管理器執行緒可以將所有Session放在一個很長時間未被使用的給定上下文中;或者可能根據生存時間對Session進行排序,以優化一些任務。
void invalidate()
將來的連接無法恢復或加入此Session。但是,任何使用此Session的現有連接可以繼續使用此Session,直到該連接關閉。
isValid()
boolean isValid()
invalidate()
void putValue(String name, Object value)
name
將指定的 value
物件綁定到Session的應用層資料中。
替換任何使用相同 name
的現有綁定。如果新的(或現有)value
實作了 SSLSessionBindingListener
介面,則會相應地通知 value
表示的物件。
出於安全原因,具有相同名稱的值在不同的存取控制上下文之間是不可見的。
name
- 資料物件將要綁定到的名稱。此參數不可以為 null。value
- 將要綁定的資料物件。此參數不可以為 null。
IllegalArgumentException
- 如果任何一個參數為 null。Object getValue(String name)
出於安全原因,具有相同名稱的值在不同的存取控制上下文之間是不可見的。
name
- 要尋找的綁定的名稱。
IllegalArgumentException
- 如果參數為 null。void removeValue(String name)
SessionBindingListener
介面,則以適當的方式通知它。
出於安全原因,具有相同名稱的值在不同的存取控制上下文之間是不可見的。
name
- 將移除的在不同存取控制上下文之間可見的物件名稱
IllegalArgumentException
- 如果參數為 null。String[] getValueNames()
出於安全原因,具有相同名稱的值在不同的存取控制上下文之間是不可見的。
Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException
註:僅當使用基於證書的密碼套件時才可以使用此方法;將它與非基於證書的密碼套件(如 Kerberos)一起使用將拋出 SSLPeerUnverifiedException。
SSLPeerUnverifiedException
- 如果同級身份未被驗證getPeerPrincipal()
Certificate[] getLocalCertificates()
註:僅當使用基於證書的密碼套件時此方法才有用。
當在一次連繫交換中有多個證書可供使用時,具體實作可以選擇使用它認為“最好的”證書鏈,並將該證書鏈傳輸給另一端。此方法允許調用者知道實際使用了哪些證書鏈。
getLocalPrincipal()
X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException
註:僅當使用基於證書的密碼套件時才可以使用此方法;將它與非基於證書的密碼套件(如 Kerberos)一起使用將拋出 SSLPeerUnverifiedException。
註:此方法存在是為了與以前的版本相容。新的應用程序應該使用 getPeerCertificates()
。
X509Certificate
格式。)
SSLPeerUnverifiedException
- 如果同級身份未被驗證getPeerPrincipal()
Principal getPeerPrincipal() throws SSLPeerUnverifiedException
SSLPeerUnverifiedException
- 如果同級身份未被驗證getPeerCertificates()
,
getLocalPrincipal()
Principal getLocalPrincipal()
getLocalCertificates()
,
getPeerPrincipal()
String getCipherSuite()
此密碼套件定義了針對連接上發送的資料所提供的保護級別,包括所使用的加密型別和如何進行驗證的大多數方面。
String getProtocol()
此方法定義了連接中使用的協議。
String getPeerHost()
對於伺服器來說,該主機是客戶端的主機;對於客戶端來說,它是伺服器的主機。此名稱可以不是一個完全限定的主機名或根本不是主機名,因為它可以表示同級網路位址的字元串編碼。如果需要這樣的名稱,可以根據此方法返回的值通過名稱服務來解析該名稱。
此值並沒有經過驗證,因此不應依賴它。它主要被用作 SSLSession
快取記憶體策略的提示。
int getPeerPort()
對於伺服器來說,該埠號號是客戶端的埠號號;對於客戶端來說,它是伺服器的埠號號。
此值並沒有經過驗證,因此不應依賴它。它主要被用作 SSLSession
快取記憶體策略的提示。
int getPacketBufferSize()
使用此Session的 SSLEngine
可以產生任意大小並包括此方法返回的值的 SSL/TLS 套件。所有 SSLEngine
網路緩衝區的大小最少應該是這麼大,以防止執行 wrap
和 unwrap
時出現空間不足問題。
SSLEngine.wrap(ByteBuffer, ByteBuffer)
,
SSLEngine.unwrap(ByteBuffer, ByteBuffer)
int getApplicationBufferSize()
SSLEngine
應用資料緩衝區必須足夠大以容納所接收的取自任何入站網路應用資料封包的應用資料。通常,出站應用資料緩衝區可以為任意大小。
SSLEngine.wrap(ByteBuffer, ByteBuffer)
,
SSLEngine.unwrap(ByteBuffer, ByteBuffer)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。