JavaTM 2 Platform
Standard Ed. 6

org.ietf.jgss
類別 ChannelBinding

java.lang.Object
  繼承者 org.ietf.jgss.ChannelBinding

public class ChannelBinding
extends Object

此類別封裝關於調用者提供的通道綁定資訊的概念。通道綁定用來在上下文創建期間加強對同位體實體進行驗證的質量。它們使 GSS-API 調用者能夠將安全上下文的創建與相關的特徵(如位址)或特定於應用程序的資料進行綁定。

初始化安全上下文的調用者必須確定將在 GSSContext 物件中設置的合適的通道綁定值。接受端必須提供一致的綁定,以便確認接收到的標記具有正確的與通道相關的特徵。

在 GSS-API 中是否使用通道綁定是可選的。在初次調用 initSecContext 或執行 acceptSecContext 之前,可以使用 setChannelBinding 方法、針對 GSSContext 來設置 ChannelBinding。除非已將 setChannelBinding 方法用於設置 GSSContext 物件的 ChannelBinding,否則將假定為 null ChannelBinding。

從概念上講,GSS-API 將初始端和接受端的位址資訊與應用程序提供的位元組陣列連接在一起,構成一個八位位元組字元串。驗證機制將通過此八位位元組字元串計算 MIC,並且將 MIC 綁定到由 GSSContext 介面的 initSecContext 方法發出的上下文創建標記中。同樣的綁定將由上下文接受端為其 GSSContext 物件設置,並且在處理 acceptSecContext 方法期間,將用同樣的方法來計算 MIC。將把計算出的 MIC 與標記中的值進行比較,如果這兩個 MIC 不同,接受端將拋出 GSSException,主程式碼被設置為 BAD_BINDINGS,並且將不建立上下文。有些驗證機制可能在標記(而不僅僅在 MIC )中包括實際的通道綁定資料;因此,應用程序不應將機密資料用作通道綁定元件。

有些驗證機制可能會在那些將出現在通道綁定中的位址上施加一些附加限制。例如,有的驗證機制會驗證通道綁定的初始端位址欄位是否包含主機系統的正確網路位址。因此,那些可移植的應用程序必須確保,它們要麼能夠提供位址欄位的正確資訊,要麼忽略對說明性資訊的設置。

從以下版本開始:
1.4

建構子摘要
ChannelBinding(byte[] appData)
          創建不帶任何說明性資訊的 ChannelBinding 物件。
ChannelBinding(InetAddress initAddr, InetAddress acceptAddr, byte[] appData)
          使用使用者提供的位址資訊和資料創建 ChannelBinding 物件。
 
方法摘要
 boolean equals(Object obj)
          比較 ChannelBinding 的兩個實例。
 InetAddress getAcceptorAddress()
          獲得此通道綁定的接受端的位址。
 byte[] getApplicationData()
          獲得此通道綁定的應用程序指定的資料。
 InetAddress getInitiatorAddress()
          獲得此通道綁定的初始端位址。
 int hashCode()
          返回此 ChannelBinding 物件的雜湊碼值。
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

ChannelBinding

public ChannelBinding(InetAddress initAddr,
                      InetAddress acceptAddr,
                      byte[] appData)
使用使用者提供的位址資訊和資料創建 ChannelBinding 物件。null 值可用於任何應用程序不想指定的欄位。

參數:
initAddr - 上下文初始端的位址。可通過提供 null 值來表示應用程序不想設置此值。
acceptAddr - 上下文接受端的位址。可通過提供 null 值來表示應用程序不想設置此值。
appData - 應用程序提供的資料,用作通道綁定的一部分。可通過提供 null 值來表示應用程序不想設置此值。

ChannelBinding

public ChannelBinding(byte[] appData)
創建不帶任何說明性資訊的 ChannelBinding 物件。

參數:
appData - 應用程序提供的資料,用作通道綁定的一部分。
方法詳細資訊

getInitiatorAddress

public InetAddress getInitiatorAddress()
獲得此通道綁定的初始端位址。

返回:
初始端的位址。如果位址尚未設置,則返回 null

getAcceptorAddress

public InetAddress getAcceptorAddress()
獲得此通道綁定的接受端的位址。

返回:
接受端的位址。如果位址尚未設置,則返回 null。

getApplicationData

public byte[] getApplicationData()
獲得此通道綁定的應用程序指定的資料。

返回:
用作 ChannelBinding 一部分的應用程序資料。如果尚未為該通道綁定指定應用程序資料,則返回 null

equals

public boolean equals(Object obj)
比較 ChannelBinding 的兩個實例。

覆寫:
類別 Object 中的 equals
參數:
obj - 將與此 ChannelBinding 進行比較的另外一個 ChannelBinding
返回:
如果這兩個 ChannelBinding 套件括相同的初始端和接受端位址值及應用程序資料,則返回 true。
另請參見:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此 ChannelBinding 物件的雜湊碼值。

覆寫:
類別 Object 中的 hashCode
返回:
雜湊碼值
另請參見:
Object.equals(java.lang.Object), Hashtable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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