JavaTM 2 Platform
Standard Ed. 6

org.ietf.jgss
介面 GSSName


public interface GSSName

此介面將封裝單一的 GSS-API 主體實體。應用程序將通過存在於GSSManager 類別中的 createName 方法之一來獲取此介面的實作。從概念上講,GSSName 套件含實體,或許多基本名稱元素的表示形式,每個受支持的基礎機制包含一個這樣的表示形式。在 GSS 術語中,僅包含來自一種機制中的元素的 GSSName 稱為機制名稱 (MN)

由於不同的驗證會使用不同的名稱空間標識其主體,所以在多機制環境中 GSS-API 的命名支持有必要複雜一些(或者說,即使在某些基礎機制要支持多名稱空間的單一機制環境中也是如此)。不同的名稱格式及其定義將使用 Oid's 來標識,而一些標準型別將在此介面中定義。名稱的格式可以基於其名稱型別唯一的 Oid 派生出來。

下面的程式碼中包含一些利用 GSSName 介面的程式碼範例。以下程式碼創建了一個 GSSName,然後將其轉換為 MN,通過比較,獲取該名稱的可列印表示形式,將其導出到位元組陣列,然後再重新導入以獲取一個新的 GSSName

      GSSManager manager = GSSManager.getInstance();

      // create a host based service name
      GSSName name = manager.createName("service@host",
                   GSSName.NT_HOSTBASED_SERVICE);

      Oid krb5 = new Oid("1.2.840.113554.1.2.2");

      GSSName mechName = name.canonicalize(krb5);
   
      // the above two steps are equivalent to the following
      GSSName mechName = manager.createName("service@host",
                      GSSName.NT_HOSTBASED_SERVICE, krb5);
   
      // perform name comparison
      if (name.equals(mechName))
              print("Names are equals.");
   
      // obtain textual representation of name and its printable
      // name type
      print(mechName.toString() +
                      mechName.getStringNameType().toString());
   
      // export and re-import the name
      byte [] exportName = mechName.export();
   
      // create a new name object from the exported buffer
      GSSName newName = manager.createName(exportName,
                      GSSName.NT_EXPORT_NAME);
   
 

從以下版本開始:
1.4
另請參見:
export(), equals(GSSName), GSSManager.createName(String, Oid), GSSManager.createName(String, Oid, Oid), GSSManager.createName(byte[], Oid)

欄位摘要
static Oid NT_ANONYMOUS
          表示匿名實體的名稱型別。
static Oid NT_EXPORT_NAME
          用來表示通過導出方法產生的導出名稱的名稱型別。
static Oid NT_HOSTBASED_SERVICE
          表示基於主機的服務名稱格式的 Oid。
static Oid NT_MACHINE_UID_NAME
          名稱型別,表示與本地系統上的使用者對應的數值型使用者標識符。
static Oid NT_STRING_UID_NAME
          名稱型別,指示一個由數字組成的字元串,表示本地系統上使用者的數值型使用者標識符。
static Oid NT_USER_NAME
          名稱型別,表示在本地系統上指定的使用者。
 
方法摘要
 GSSName canonicalize(Oid mech)
          創建一個針對某種機制而規範化的名稱。
 boolean equals(GSSName another)
          比較兩個 GSSName 物件,以確定它們是否指的是同一個實體。
 boolean equals(Object another)
          將此 GSSName 物件與可能是 GSSName 的另一個物件進行比較。
 byte[] export()
          返回機制名稱 (MN) 的規範化連續位元組表示形式,適合通過授權的功能進行直接的、逐位元組比較。
 Oid getStringNameType()
          返回此名稱的可列印表示形式的名稱型別,此名稱可從 toString 方法中獲取。
 int hashCode()
          返回此 GSSName 的雜湊碼值。
 boolean isAnonymous()
          測試此名稱物件是否表示匿名的實體。
 boolean isMN()
          測試此名稱物件是否表示一個機制名稱 (MN)。
 String toString()
          返回 GSSName 物件的文本表示形式。
 

欄位詳細資訊

NT_HOSTBASED_SERVICE

static final Oid NT_HOSTBASED_SERVICE
表示基於主機的服務名稱格式的 Oid。用來表示與主電腦相關的服務。此名稱格式由兩種元素構成,即“服務”和“主機名稱”,如下所示:service@hostname.

它表示以下 Oid 值:
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 2(gss-host-based-services) }


NT_USER_NAME

static final Oid NT_USER_NAME
名稱型別,表示在本地系統上指定的使用者。

它表示以下 Oid 值:
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) user_name(1) }


NT_MACHINE_UID_NAME

static final Oid NT_MACHINE_UID_NAME
名稱型別,表示與本地系統上的使用者對應的數值型使用者標識符。(例如,Uid)。

它表示以下 Oid 值:
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) machine_uid_name(2) }


NT_STRING_UID_NAME

static final Oid NT_STRING_UID_NAME
名稱型別,指示一個由數字組成的字元串,表示本地系統上使用者的數值型使用者標識符。

它表示以下 Oid 值:
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) string_uid_name(3) }


NT_ANONYMOUS

static final Oid NT_ANONYMOUS
表示匿名實體的名稱型別。

它表示以下 Oid 值:
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 3(gss-anonymous-name) }


NT_EXPORT_NAME

static final Oid NT_EXPORT_NAME
用來表示通過導出方法產生的導出名稱的名稱型別。

它表示以下 Oid 值:
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 4(gss-api-exported-name) }

方法詳細資訊

equals

boolean equals(GSSName another)
               throws GSSException
比較兩個 GSSName 物件,以確定它們是否指的是同一個實體。

參數:
another - 將此名稱與之比較的 GSSName
返回:
如果這兩個名稱至少包含一個共同的基本元素,則返回 true。如果這兩個名稱中的任一名稱都表示匿名的實體,則該方法將返回 false。
拋出:
GSSException,當兩個名稱無法進行比較,包含以下主要錯誤程式碼時:{@link - GSSException#BAD_NAMETYPE GSSException.BAD_NAMETYPE}, GSSException.FAILURE
GSSException

equals

boolean equals(Object another)
將此 GSSName 物件與可能是 GSSName 的另一個物件進行比較。此行為與 equals 中的行為完全相同,除了沒有 GSSException 拋出;而在出現錯誤時將返回 false。

覆寫:
類別 Object 中的 equals
參數:
another - 將此名稱與之進行比較的物件
返回:
如果將與之進行比較的物件也是 GSSName 並且兩個名稱都指的是同一個實體,則返回 true。
另請參見:
equals(GSSName)

hashCode

int hashCode()
返回此 GSSName 的雜湊碼值。

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

canonicalize

GSSName canonicalize(Oid mech)
                     throws GSSException
創建一個針對某種機制而規範化的名稱。

參數:
mech - 機制的 oid,要為該機制請求名稱的規範化格式。
返回:
GSSName,它僅包含一種基本元素,該元素用所需機制的規範化格式表示此名稱。
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#BAD_MECH GSSException.BAD_MECH}、@link GSSException#BAD_NAMETYPE GSSException.BAD_NAMETYPE}、@link GSSException#BAD_NAME GSSException.BAD_NAME}、@link GSSException#FAILURE GSSException.FAILURE}
GSSException

export

byte[] export()
              throws GSSException
返回機制名稱 (MN) 的規範化連續位元組表示形式,適合通過授權的功能進行直接的、逐位元組比較。如果該名稱不是 MN,則實作可能會拋出一個帶有 NAME_NOT_MN 狀態碼的 GSSException。如果實作選擇不拋出異常,則應該使用某些特定於系統的預設機制,以便規範化該名稱,然後導出它。從結構上看,導出的名稱物件由頭部(它包含標識對名稱進行驗證的機制的 OID)和尾部(包含名稱本身,其中,尾部的語法由每個機制規範定義)組成。輸出緩衝的頭的格式已在 RFC 2743 中指定。

當在較大的存取控制列表(在此情況下,可以削減在每個名稱上創建 GSSName 物件和從 ACL 中調用每個名稱上的 equals 方法的開銷)中使用時,導出的名稱非常有用。

通過使用位元組陣列 factory 方法 GSSManager.createName 並將 NT_EXPORT_NAME 指定為名稱型別物件標識符,可以重新導入導出的名稱。得到的 GSSName 名稱還將是一個 MN。

返回:
一個套件含導出的名稱的 byte[]。RFC 2743 為這些位元組定義了“Mechanism-Independent Exported Name Object Format”(獨立於機制的導出名稱物件格式)。
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#BAD_NAME GSSException.BAD_NAME}、GSSException.BAD_NAMETYPEGSSException.FAILURE
GSSException

toString

String toString()
返回 GSSName 物件的文本表示形式。要檢索列印的名稱格式(它確定了返回的字元串的語法),請使用 getStringNameType 方法。

覆寫:
類別 Object 中的 toString
返回:
一個用可列印格式表示此名稱的字元串。

getStringNameType

Oid getStringNameType()
                      throws GSSException
返回此名稱的可列印表示形式的名稱型別,此名稱可從 toString 方法中獲取。

返回:
一個表示從 toString 方法中返回的名稱的名稱空間的 Oid。
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#FAILURE GSSException.FAILURE}
GSSException

isAnonymous

boolean isAnonymous()
測試此名稱物件是否表示匿名的實體。

返回:
如果它是一個匿名的名稱,則返回 true,否則返回 false。

isMN

boolean isMN()
測試此名稱物件是否表示一個機制名稱 (MN)。MN 是一個僅包含一種機制的基本名稱元素的 GSSName。

返回:
如果是 MN,則返回 true,否則返回 false。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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