JavaTM 2 Platform
Standard Ed. 6

org.ietf.jgss
介面 GSSCredential

所有父級介面:
Cloneable

public interface GSSCredential
extends Cloneable

此介面將為實體封裝 GSS-API 憑據。憑據包含所有必要的加密資訊,這些資訊使創建的上下文能夠代表它所表示的實體。它可以包含多種不同的特定於機制的憑據元素,每種元素又包含有關特定的安全機制的資訊,但所有這一切都指的是同一個實體。憑據可用來執行上下文初始化、接受(也可以同時執行二者)。

GSSManager 類別中可使用其中的一種 createCredential 方法來初始化憑據。GSS-API 憑據的創建並不是為了提供“登錄到網路”的功能,因為,此類別功能會涉及到創建新的憑據,而不僅僅是獲取對現有憑據的處理。package 級別介紹中的 section on credential acquisition 介紹了如何在 Java 平臺中獲取現有的憑據。GSS-API 實作必須對調用者實施本地存取控制策略,以防止未經授權的調用者獲取他們無權獲取的憑據。

應用程序將創建一個傳輸所需參數的憑據物件。然後應用程序可以使用查詢方法來獲取有關實例化的憑據物件的具體資訊。當不需要憑據時,應用程序必須調用 dispose 方法來釋該放憑據物件掌握的資源,並且銷毀任何經過加密的敏感資訊。

下面的範例程式碼演示了如何為特定的實體創建 GSSCredential 實作、查詢其欄位,以及不再需要它時如何釋放它:

    GSSManager manager = GSSManager.getInstance();

    // start by creating a name object for the entity
    GSSName name = manager.createName("myusername", GSSName.NT_USER_NAME);

    // now acquire credentials for the entity
    GSSCredential cred = manager.createCredential(name,
                    GSSCredential.ACCEPT_ONLY);

    // display credential information - name, remaining lifetime,
    // and the mechanisms it has been acquired over
    System.out.println(cred.getName().toString());
    System.out.println(cred.getRemainingLifetime());

    Oid [] mechs = cred.getMechs();
    if (mechs != null) {
            for (int i = 0; i < mechs.length; i++)
                    System.out.println(mechs[i].toString());
    }

    // release system resources held by the credential
    cred.dispose();
 

從以下版本開始:
1.4
另請參見:
GSSManager.createCredential(int), GSSManager.createCredential(GSSName, int, Oid, int), GSSManager.createCredential(GSSName, int, Oid[], int), dispose()

欄位摘要
static int ACCEPT_ONLY
          憑據使用標誌,要求憑據僅可用於上下文接受。
static int DEFAULT_LIFETIME
          一個表示預設的憑據生存期的生存期常數。
static int INDEFINITE_LIFETIME
          一個表示不確定的憑據生存期的生存期常數。
static int INITIATE_AND_ACCEPT
          憑據使用標誌,它要求憑據既可用於上下文初始化也可用於接受。
static int INITIATE_ONLY
          憑據使用標誌,要求憑據僅可用於上下文初始化。
 
方法摘要
 void add(GSSName name, int initLifetime, int acceptLifetime, Oid mech, int usage)
          將特定於機制的憑據元素添加到現有的憑據中。
 void dispose()
          釋放 GSSCredential 物件可能包含的任何敏感資訊。
 boolean equals(Object another)
          進行測試,看此 GSSCredential 是否具有與提供的物件相同的實體。
 Oid[] getMechs()
          返回受此憑據支持的機制的列表。
 GSSName getName()
          檢索憑據所維護的實體的名稱。
 GSSName getName(Oid mech)
          檢索憑據所維護的實體的 Mechanism Name(機制名稱)。
 int getRemainingAcceptLifetime(Oid mech)
          返回憑據以秒為單位的生存期,以便能夠繼續使用指定的機制接受安全上下文。
 int getRemainingInitLifetime(Oid mech)
          返回憑據以秒為單位的生存期,以便能夠繼續使用指定的機制初始化安全上下文。
 int getRemainingLifetime()
          返回憑據所剩餘的以秒為單位的生存期。
 int getUsage()
          返回憑據使用網要。
 int getUsage(Oid mech)
          返回特定機制的憑據使用網要。
 int hashCode()
          返回此 GSSCredential 的雜湊碼值。
 

欄位詳細資訊

INITIATE_AND_ACCEPT

static final int INITIATE_AND_ACCEPT
憑據使用標誌,它要求憑據既可用於上下文初始化也可用於接受。

另請參見:
常數欄位值

INITIATE_ONLY

static final int INITIATE_ONLY
憑據使用標誌,要求憑據僅可用於上下文初始化。

另請參見:
常數欄位值

ACCEPT_ONLY

static final int ACCEPT_ONLY
憑據使用標誌,要求憑據僅可用於上下文接受。

另請參見:
常數欄位值

DEFAULT_LIFETIME

static final int DEFAULT_LIFETIME
一個表示預設的憑據生存期的生存期常數。此值被設置為 0。

另請參見:
常數欄位值

INDEFINITE_LIFETIME

static final int INDEFINITE_LIFETIME
一個表示不確定的憑據生存期的生存期常數。在 Java 中必須將此值設置為最大整數值 -- Integer.MAX_VALUE

另請參見:
常數欄位值
方法詳細資訊

dispose

void dispose()
             throws GSSException
釋放 GSSCredential 物件可能包含的任何敏感資訊。一旦不再需要某個憑據,應用程序就要立即調用此方法,以便將維護敏感資訊所需的時間降至最低。

拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#FAILURE GSSException.FAILURE}
GSSException

getName

GSSName getName()
                throws GSSException
檢索憑據所維護的實體的名稱。

返回:
一個代表該實體的 GSSName
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#FAILURE GSSException.FAILURE}
GSSException

getName

GSSName getName(Oid mech)
                throws GSSException
檢索憑據所維護的實體的 Mechanism Name(機制名稱)。這相當於對其他形式的 getName 返回的值調用規範化

參數:
mech - 應該為其返回“Mechanism Name”的機制的 Oid。
返回:
一個表示已針對需要的機制對實體進行規範化的 GSSName
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#BAD_MECH GSSException.BAD_MECH}, GSSException.FAILURE
GSSException

getRemainingLifetime

int getRemainingLifetime()
                         throws GSSException
返回憑據所剩餘的以秒為單位的生存期。在所有的特定於基礎機制的憑據元素中,剩餘生存期是最小的生存期。

返回:
此憑據所剩餘的以秒為單位的生存期。返回 INDEFINITE_LIFETIME 一值表示憑據尚未到期。返回 0 值表示憑據已經過期。
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#FAILURE GSSException.FAILURE}
GSSException
另請參見:
getRemainingInitLifetime(Oid), getRemainingAcceptLifetime(Oid)

getRemainingInitLifetime

int getRemainingInitLifetime(Oid mech)
                             throws GSSException
返回憑據以秒為單位的生存期,以便能夠繼續使用指定的機制初始化安全上下文。此方法將查詢屬於指定機制的初始端憑據元素。

參數:
mech - 必須查詢其初始端憑據元素的機制的 Oid。
返回:
在此憑據元素可以存留的秒數。返回 INDEFINITE_LIFETIME 值表示憑據元素尚未到期。返回 0 值表示憑據元素已經過期。
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#BAD_MECH GSSException.BAD_MECH}, GSSException.FAILURE
GSSException

getRemainingAcceptLifetime

int getRemainingAcceptLifetime(Oid mech)
                               throws GSSException
返回憑據以秒為單位的生存期,以便能夠繼續使用指定的機制接受安全上下文。此方法將查詢屬於指定機制的接受端憑據元素。

參數:
mech - 必須查詢其接受端憑據元素的機制的 Oid。
返回:
此憑據元素存留的秒數。返回 INDEFINITE_LIFETIME 一值表示憑據元素尚未到期。返回 0 值表示憑據元素已經過期。
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#BAD_MECH GSSException.BAD_MECH}, GSSException.FAILURE
GSSException

getUsage

int getUsage()
             throws GSSException
返回憑據使用網要。換句話說,就是它可以告訴我們,此憑據是否可以用來初始化或接受安全上下文。但它無法告訴我們為了這樣做必須使用哪(個)些機制。人們希望應用程序在調用此方法之後允許 GSS-API 挑選出預設的機制。

返回:
返回的值將是以下三者之一:INITIATE_ONLYACCEPT_ONLYINITIATE_AND_ACCEPT
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#FAILURE GSSException.FAILURE}
GSSException

getUsage

int getUsage(Oid mech)
             throws GSSException
返回特定機制的憑據使用網要。換句話說,就是它可以告訴我們,此憑據是否可以用來初始化或接受具有指定的基礎機制的安全上下文。

參數:
mech - 其憑據使用網要需要確定的機制的 Oid。
返回:
返回的值將是以下三者之一:INITIATE_ONLYACCEPT_ONLYINITIATE_AND_ACCEPT
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#BAD_MECH GSSException.BAD_MECH}, GSSException.FAILURE
GSSException

getMechs

Oid[] getMechs()
               throws GSSException
返回受此憑據支持的機制的列表。但它無法告訴我們,哪些可用來初始化上下文,哪些可用來接受上下文。應用程序必須使用每個返回的 Oid 調用 getUsage 方法,以便確定可以使用的網要。

返回:
一個與受支持的機制一致的 Oid 的陣列。
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#FAILURE GSSException.FAILURE}
GSSException

add

void add(GSSName name,
         int initLifetime,
         int acceptLifetime,
         Oid mech,
         int usage)
         throws GSSException
將特定於機制的憑據元素添加到現有的憑據中。此方法允許建構憑據,每次一個機制。

預計此例程主要由上下文接受端在創建接受端憑據時使用,這些憑據可用於使用不同安全機制的各種客戶端。

此例程將添加這一新的憑據元素到合適的地方。為了將該元素添加到新的憑據中,首先要調用 clone 以獲取此憑據的一個副本,然後再調用其 add 方法。

與以往一樣,GSS-API 實作必須向調用者實施本地存取控制策略,以防止未經授權的調用者獲取他們無權獲取的憑據。 initLifetime 和 acceptLifetime 的非預設值並不總能得到基礎機制的認可,因此,調用者必須準備調用憑據上的 getRemainingInitLifetimegetRemainingAcceptLifetime

參數:
name - 將為其獲取此憑據的主體的名稱。使用 null 來指定預設的主體。
initLifetime - 為初始化安全上下文,憑據元素應該保持有效的秒數。為此,請使用 GSSCredential.INDEFINITE_LIFETIME,以請求該憑據應具有最大允許生存期。為此,請使用 GSSCredential.DEFAULT_LIFETIME 請求預設的生存期。
acceptLifetime - 為接受安全上下文,憑據元素應該保持有效的秒數。為此,請使用 GSSCredential.INDEFINITE_LIFETIME,以請求該憑據應具有最大允許生存期。為此,請使用 GSSCredential.DEFAULT_LIFETIME 請求預設的生存期。
mech - 通過它獲取憑據的機制。
usage - 此憑據元素應該添加到憑據所使用的使用網要。此參數的值必須是下列值之一:INITIATE_AND_ACCEPTACCEPT_ONLYINITIATE_ONLY
拋出:
GSSException,包含以下主要錯誤程式碼:{@link - GSSException#DUPLICATE_ELEMENT GSSException.DUPLICATE_ELEMENT}, GSSException.BAD_MECH, GSSException.BAD_NAMETYPE, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.FAILURE
GSSException

equals

boolean equals(Object another)
進行測試,看此 GSSCredential 是否具有與提供的物件相同的實體。這兩個憑據必須通過相同的機制獲取,並且必須指相同的主體。

覆寫:
類別 Object 中的 equals
參數:
another - 與此 GSSCredential 進行比較的另外一個 GSSCredential
返回:
如果兩個 GSSCredential 表示相同的實體,則返回 true;否則返回 false
另請參見:
Object.hashCode(), Hashtable

hashCode

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

覆寫:
類別 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