- 所有超接口:
-
Cloneable
- 所有已知子接口:
-
ExtendedGSSCredential
该接口封装了实体的GSS-API凭据。凭据包含了启用代表其的实体创建上下文所需的所有必要的加密信息。它可能包含多个不同的、特定于机制的凭据元素,每个元素包含特定安全机制的信息,但都指向同一实体。凭据可用于执行上下文初始化、接受或两者。
凭据是使用GSSManager
类中的createCredential
方法之一实例化的。GSS-API凭据创建并不旨在提供“登录到网络”功能,因为这样的功能将涉及创建新凭据而不仅仅是获取对现有凭据的句柄。包级描述中关于凭据获取的部分描述了在Java平台上如何获取现有凭据。GSS-API实现必须对调用者施加本地访问控制策略,以防止未经授权的调用者获取他们无权访问的凭据。
应用程序将创建一个凭据对象,传递所需的参数。应用程序可以使用查询方法获取有关实例化的凭据对象的特定信息。当不再需要凭据时,应用程序应调用dispose
方法来释放凭据对象持有的任何资源,并销毁任何具有密码敏感性的信息。
以下示例代码演示了为特定实体创建GSSCredential实现、查询其字段以及在不再需要时释放它的过程:
GSSManager manager = GSSManager.getInstance(); // 首先为实体创建一个名称对象 GSSName name = manager.createName("myusername", GSSName.NT_USER_NAME); // 现在为实体获取凭据 GSSCredential cred = manager.createCredential(name, GSSCredential.ACCEPT_ONLY); // 显示凭据信息 - 名称、剩余生存时间, // 以及它已获取的机制 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()); } // 释放凭据所持有的系统资源 cred.dispose();
- 自 JDK 版本:
- 1.4
- 另请参阅:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
请求凭据使用标志,要求仅用于上下文接受。static final int
表示默认凭据生存期的生存期常量。static final int
表示无限凭据生存期的生存期常量。static final int
请求凭据使用标志,要求可用于上下文初始化和接受。static final int
请求凭据使用标志,要求仅用于上下文初始化。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
向现有凭据添加特定于机制的凭据元素。void
dispose()
释放GSSCredential对象可能包含的任何敏感信息。boolean
测试此GSSCredential是否断言与提供的对象相同的实体。Oid[]
getMechs()
返回此凭据支持的机制列表。getName()
检索凭据断言的实体的名称。检索凭据断言的实体的机制名称。int
返回凭据使用指定机制保持能够接受安全上下文的秒数的生存期。int
getRemainingInitLifetime
(Oid mech) 返回凭据使用指定机制保持能够初始化安全上下文的秒数的生存期。int
返回凭据的剩余生存期(以秒为单位)。int
getUsage()
返回凭据使用模式。int
返回特定机制的凭据使用模式。int
hashCode()
返回此GSSCredential的哈希码值。
-
Field Details
-
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
。- 另请参阅:
-
-
Method Details
-
dispose
释放GSSCredential对象可能包含的任何敏感信息。应用程序应在不再需要凭据时尽快调用此方法,以最小化维护任何敏感信息的时间。- 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
-
getName
检索凭据断言的实体的名称。- 返回:
- 代表实体的GSSName
- 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
-
getName
检索凭据断言的实体的机制名称。这相当于对通过另一种形式的getName
返回的值调用canonicalize
。- 参数:
-
mech
- 应返回机制名称的机制的Oid。 - 返回:
- 代表为所需机制规范化的实体的GSSName
- 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.BAD_MECH
,GSSException.FAILURE
-
getRemainingLifetime
返回凭据的剩余生存期(以秒为单位)。剩余生存期是所有底层机制特定凭据元素中最小的生存期。- 返回:
-
该凭据的最小剩余生存期(以秒为单位)。返回值为
INDEFINITE_LIFETIME
表示凭据不会过期。返回值为0表示凭据已过期。 - 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
- 另请参阅:
-
getRemainingInitLifetime
返回凭据使用指定机制保持能够初始化安全上下文的秒数的生存期。此方法查询属于指定机制的发起方凭据元素。- 参数:
-
mech
- 应查询其发起方凭据元素的机制的Oid。 - 返回:
-
该凭据元素的生存期剩余秒数。返回值为
INDEFINITE_LIFETIME
表示凭据元素不会过期。返回值为0表示凭据元素已过期。 - 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.BAD_MECH
,GSSException.FAILURE
-
getRemainingAcceptLifetime
返回凭据使用指定机制保持能够接受安全上下文的秒数的生存期。此方法查询属于指定机制的接收方凭据元素。- 参数:
-
mech
- 应查询其接收凭据元素的机制的Oid。 - 返回:
-
该凭据元素剩余生存时间的秒数。返回值为
INDEFINITE_LIFETIME
表示凭据元素永不过期。返回值为0表示凭据元素已过期。 - 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.BAD_MECH
,GSSException.FAILURE
-
getUsage
返回凭据使用模式。换句话说,它告诉我们此凭据是否可用于启动或接受安全上下文。它不告诉我们必须使用哪种机制来实现。预期应用程序在调用此方法后允许GSS-API选择默认机制。- 返回:
-
返回值将是
INITIATE_ONLY
、ACCEPT_ONLY
或INITIATE_AND_ACCEPT
之一。 - 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
-
getUsage
返回特定机制的凭据使用模式。换句话说,它告诉我们此凭据是否可用于使用给定底层机制启动或接受安全上下文。- 参数:
-
mech
- 要确定其凭据使用模式的机制的Oid。 - 返回:
-
返回值将是
INITIATE_ONLY
、ACCEPT_ONLY
或INITIATE_AND_ACCEPT
之一。 - 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.BAD_MECH
,GSSException.FAILURE
-
getMechs
返回此凭据支持的机制列表。它不告诉我们哪些可以用于启动上下文,哪些可以用于接受上下文。应用程序必须对返回的每个Oid调用getUsage
方法以确定可能的使用模式。- 返回:
- 与支持的机制对应的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
测试此GSSCredential是否断言与提供的对象相同的实体。两个凭据必须通过相同的机制获取,并且必须引用相同的主体。 -
hashCode
int hashCode()返回此GSSCredential的哈希码值。
-