|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
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);
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 物件的文本表示形式。 |
欄位詳細資訊 |
---|
static final Oid NT_HOSTBASED_SERVICE
它表示以下 Oid 值:{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 2(gss-host-based-services) }
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) }
static final Oid NT_MACHINE_UID_NAME
它表示以下 Oid 值:{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) machine_uid_name(2) }
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) }
static final Oid NT_ANONYMOUS
它表示以下 Oid 值:{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 3(gss-anonymous-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) }
方法詳細資訊 |
---|
boolean equals(GSSName another) throws GSSException
GSSName
物件,以確定它們是否指的是同一個實體。
another
- 將此名稱與之比較的 GSSName
GSSException,當兩個名稱無法進行比較,包含以下主要錯誤程式碼時:{@link
- GSSException#BAD_NAMETYPE GSSException.BAD_NAMETYPE}, GSSException.FAILURE
GSSException
boolean equals(Object another)
GSSName
物件與可能是 GSSName
的另一個物件進行比較。此行為與 equals
中的行為完全相同,除了沒有 GSSException 拋出;而在出現錯誤時將返回 false。
Object
中的 equals
another
- 將此名稱與之進行比較的物件
GSSName
並且兩個名稱都指的是同一個實體,則返回 true。equals(GSSName)
int hashCode()
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
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
byte[] export() throws GSSException
當在較大的存取控制列表(在此情況下,可以削減在每個名稱上創建 GSSName
物件和從 ACL 中調用每個名稱上的 equals 方法的開銷)中使用時,導出的名稱非常有用。
通過使用位元組陣列 factory 方法 GSSManager.createName
並將 NT_EXPORT_NAME 指定為名稱型別物件標識符,可以重新導入導出的名稱。得到的 GSSName
名稱還將是一個 MN。
GSSException,包含以下主要錯誤程式碼:{@link
- GSSException#BAD_NAME GSSException.BAD_NAME}、GSSException.BAD_NAMETYPE
、GSSException.FAILURE
GSSException
String toString()
GSSName
物件的文本表示形式。要檢索列印的名稱格式(它確定了返回的字元串的語法),請使用 getStringNameType
方法。
Object
中的 toString
Oid getStringNameType() throws GSSException
toString
方法中獲取。
GSSException,包含以下主要錯誤程式碼:{@link
- GSSException#FAILURE GSSException.FAILURE}
GSSException
boolean isAnonymous()
boolean isMN()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。