-
- All Superinterfaces:
-
Cloneable
- All Known Subinterfaces:
-
ExtendedGSSCredential
public interface GSSCredential extends Cloneable
该接口封装了实体的GSS-API凭据。 凭证包含所有必要的加密信息,以便能够代表其所代表的实体创建上下文。 它可能包含多个不同的机制特定凭据元素,每个元素都包含特定安全机制的信息,但都指向相同的实体。 可以使用凭证来执行上下文启动,接受或两者。使用
GSSManager
类中的createCredential
方法之一实例化凭据。 GSS-API认证创建并不旨在提供“登录到网络”功能,因为这样的功能将涉及创建新的凭据,而不仅仅是获取现有凭据的句柄。 包级别描述中的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();
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
ACCEPT_ONLY
凭证使用标志,要求仅可用于上下文接受。static int
DEFAULT_LIFETIME
表示默认凭证生命周期的生命周期常数。static int
INDEFINITE_LIFETIME
代表无限期凭证寿命的终生常数。static int
INITIATE_AND_ACCEPT
凭证使用标志,要求其可用于上下文启动和接受。static int
INITIATE_ONLY
凭证使用标志,要求仅用于上下文启动。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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)
检索机制凭证声明的实体的名称。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
凭证使用标志,要求其可用于上下文启动和接受。- 另请参见:
- Constant Field Values
-
INITIATE_ONLY
static final int INITIATE_ONLY
凭证使用标志,要求仅用于上下文启动。- 另请参见:
- Constant Field Values
-
ACCEPT_ONLY
static final int ACCEPT_ONLY
凭证使用标志,要求仅可用于上下文接受。- 另请参见:
- Constant Field Values
-
DEFAULT_LIFETIME
static final int DEFAULT_LIFETIME
表示默认凭证生命周期的生命周期常数。 该值设置为0。- 另请参见:
- Constant Field Values
-
INDEFINITE_LIFETIME
static final int INDEFINITE_LIFETIME
代表无限期凭证寿命的终生常数。 此值必须设置为Java中的最大整数值 -Integer.MAX_VALUE
。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
dispose
void dispose() throws GSSException
释放GSSCredential对象可能包含的任何敏感信息。 一旦不再需要凭证,应用程序就应该调用此方法,以最小化维护任何敏感信息的时间。- 异常
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
-
getName
GSSName getName() throws GSSException
检索证书所声明的实体的名称。- 结果
- 表示实体的GSSName
- 异常
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
-
getName
GSSName getName(Oid mech) throws GSSException
检索机制凭证声明的实体的名称。 这等同于调用canonicalize
通过的其他形式的返回值getName
。- 参数
-
mech
- 机制名称应返回的机制的Oid。 - 结果
- 表示为所需机制规范化的实体的GSSName
- 异常
-
GSSException
-包含以下主要错误代码:GSSException.BAD_MECH
,GSSException.FAILURE
-
getRemainingLifetime
int getRemainingLifetime() throws GSSException
返回凭证的剩余生命周期(以秒为单位)。 剩余生命周期是所有潜在机制特定凭证元素的最短生命周期。- 结果
-
此凭证的最小剩余生命周期(以秒为单位)。
返回值为
INDEFINITE_LIFETIME
表示凭证未过期。 返回值为0表示凭证已过期。 - 异常
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
- 另请参见:
-
getRemainingInitLifetime(Oid)
,getRemainingAcceptLifetime(Oid)
-
getRemainingInitLifetime
int getRemainingInitLifetime(Oid mech) throws GSSException
返回凭证使用指定机制启动安全上下文的生命周期(以秒为单位)。 此方法查询属于指定机制的启动器凭据元素。- 参数
-
mech
- 应查询启动器凭据元素的机制的Oid。 - 结果
-
该凭证元素的使用寿命中剩余的秒数。
返回值为
INDEFINITE_LIFETIME
表示凭证元素未过期。 返回值为0表示凭证元素已过期。 - 异常
-
GSSException
-包含以下主要错误代码:GSSException.BAD_MECH
,GSSException.FAILURE
-
getRemainingAcceptLifetime
int getRemainingAcceptLifetime(Oid mech) throws GSSException
返回凭证使用指定机制继续接受安全上下文的生命周期(以秒为单位)。 此方法查询属于指定机制的acceptor凭据元素。- 参数
-
mech
- 应该查询其接受者凭据元素的机制的Oid。 - 结果
-
该凭证元素的使用寿命中剩余的秒数。
返回值为
INDEFINITE_LIFETIME
表示凭证元素不会过期。 返回值为0表示凭证元素已过期。 - 异常
-
GSSException
-包含以下主要错误代码:GSSException.BAD_MECH
,GSSException.FAILURE
-
getUsage
int getUsage() throws GSSException
返回凭据使用模式。 换句话说,它告诉我们这个凭据是否可以用于启动或接受安全上下文。 它不告诉我们为了这样做,必须使用哪种机制。 预计应用程序将允许GSS-API在调用此方法后选择默认机制。- 结果
-
返回值将是一个
INITIATE_ONLY
,ACCEPT_ONLY
,并INITIATE_AND_ACCEPT
。 - 异常
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
-
getUsage
int getUsage(Oid mech) throws GSSException
返回特定机制的凭据使用模式。 换句话说,它告诉我们这个凭证是否可以用于启动或接受具有给定底层机制的安全上下文。- 参数
-
mech
- 要确定凭据使用模式的机制的Oid。 - 结果
-
返回值将是一个
INITIATE_ONLY
,ACCEPT_ONLY
,并INITIATE_AND_ACCEPT
。 - 异常
-
GSSException
-包含以下主要错误代码:GSSException.BAD_MECH
,GSSException.FAILURE
-
getMechs
Oid[] getMechs() throws GSSException
- 结果
- 一组Oid对应于支持的机制。
- 异常
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
-
add
void add(GSSName name, int initLifetime, int acceptLifetime, Oid mech, int usage) throws GSSException
将机制特定凭据元素添加到现有凭据。 这种方法允许建立凭证,一次一个机制。在创建接受者凭据期间,此例程被设想为主要由上下文接受者使用,这些接受者凭证将与使用不同安全机制的各种客户端一起使用。
此例程将添加新的凭据元素“就地”。 要将元素添加到新凭据中,首先调用
clone
以获取此凭据的副本,然后调用其add
方法。与往常一样,GSS-API实现必须对呼叫者强制执行本地访问控制策略,以防止未经授权的呼叫者获取他们无权访问的凭据。 initLifetime和acceptLifetime的非默认值不能始终被基础机制所尊重,因此调用者应该准备好在凭证上调用
getRemainingInitLifetime
和getRemainingAcceptLifetime
。- 参数
-
name
- 要获得该证书的校长的姓名。 使用null
指定默认主体。 -
initLifetime
- 证书元素在启动安全上下文时应保持有效的秒数。 使用GSSCredential.INDEFINITE_LIFETIME
请求凭据具有最大允许的生命周期。 使用GSSCredential.DEFAULT_LIFETIME
为此请求默认凭据生存期。 -
acceptLifetime
- 凭证元素应该保持有效接受安全上下文的秒数。 使用GSSCredential.INDEFINITE_LIFETIME
请求凭据具有此允许的最大允许生命周期。 使用GSSCredential.DEFAULT_LIFETIME
为此请求默认凭证生命周期。 -
mech
- 获取凭证的机制。 -
usage
- 此凭据元素应添加到凭据的使用模式。 此参数的值必须是一个:INITIATE_AND_ACCEPT
,ACCEPT_ONLY
,并INITIATE_ONLY
。 - 异常
-
GSSException
-包含以下主要错误代码:GSSException.DUPLICATE_ELEMENT
,GSSException.BAD_MECH
,GSSException.BAD_NAMETYPE
,GSSException.NO_CRED
,GSSException.CREDENTIALS_EXPIRED
,GSSException.FAILURE
-
equals
boolean equals(Object another)
测试此GSSCredential是否与提供的对象断言相同的实体。 这两个凭证必须通过相同的机制获得,并且必须引用相同的主体。- 重写:
-
equals
在Object
- 参数
-
another
- 另一个与此相比较的GSSCredential - 结果
-
true
如果两个GSSCredentials断言同一个实体; 否则为false
。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
int hashCode()
返回此GSSCredential的哈希码值。- 重写:
-
hashCode
在Object
- 结果
- 一个hashCode值
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-