public interface GSSCredential
此接口将为实体封装 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();
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 的哈希码值。 |
字段详细信息 |
---|
static final int INITIATE_AND_ACCEPT
static final int INITIATE_ONLY
static final int ACCEPT_ONLY
static final int DEFAULT_LIFETIME
static final int INDEFINITE_LIFETIME
Integer.MAX_VALUE
。
方法详细信息 |
---|
void dispose() throws GSSException
GSSException,包含以下主要错误代码:{@link
- GSSException#FAILURE GSSException.FAILURE}
GSSException
GSSName getName() throws GSSException
GSSException,包含以下主要错误代码:{@link
- GSSException#FAILURE GSSException.FAILURE}
GSSException
GSSName getName(Oid mech) throws GSSException
getName
返回的值调用
规范化
。
mech
- 应该为其返回“Mechanism Name”的机制的 Oid。
GSSException,包含以下主要错误代码:{@link
- GSSException#BAD_MECH GSSException.BAD_MECH},
GSSException.FAILURE
GSSException
int getRemainingLifetime() throws GSSException
INDEFINITE_LIFETIME
一值表示凭据尚未到期。返回 0 值表示凭据已经过期。
GSSException,包含以下主要错误代码:{@link
- GSSException#FAILURE GSSException.FAILURE}
GSSException
getRemainingInitLifetime(Oid)
,
getRemainingAcceptLifetime(Oid)
int getRemainingInitLifetime(Oid mech) throws GSSException
mech
- 必须查询其初始端凭据元素的机制的 Oid。
INDEFINITE_LIFETIME
值表示凭据元素尚未到期。返回 0 值表示凭据元素已经过期。
GSSException,包含以下主要错误代码:{@link
- GSSException#BAD_MECH GSSException.BAD_MECH},
GSSException.FAILURE
GSSException
int getRemainingAcceptLifetime(Oid mech) throws GSSException
mech
- 必须查询其接受端凭据元素的机制的 Oid。
INDEFINITE_LIFETIME
一值表示凭据元素尚未到期。返回 0 值表示凭据元素已经过期。
GSSException,包含以下主要错误代码:{@link
- GSSException#BAD_MECH GSSException.BAD_MECH},
GSSException.FAILURE
GSSException
int getUsage() throws GSSException
INITIATE_ONLY
、
ACCEPT_ONLY
和
INITIATE_AND_ACCEPT
。
GSSException,包含以下主要错误代码:{@link
- GSSException#FAILURE GSSException.FAILURE}
GSSException
int getUsage(Oid mech) throws GSSException
mech
- 其凭据使用模式需要确定的机制的 Oid。
INITIATE_ONLY
、
ACCEPT_ONLY
和
INITIATE_AND_ACCEPT
。
GSSException,包含以下主要错误代码:{@link
- GSSException#BAD_MECH GSSException.BAD_MECH},
GSSException.FAILURE
GSSException
Oid[] getMechs() throws GSSException
getUsage
方法,以便确定可以使用的模式。
GSSException,包含以下主要错误代码:{@link
- GSSException#FAILURE GSSException.FAILURE}
GSSException
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,包含以下主要错误代码:{@link
- GSSException#DUPLICATE_ELEMENT GSSException.DUPLICATE_ELEMENT},
GSSException.BAD_MECH
,
GSSException.BAD_NAMETYPE
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.FAILURE
GSSException
boolean equals(Object another)
another
- 与此 GSSCredential 进行比较的另外一个 GSSCredential
true
;否则返回
false
。
Object.hashCode()
,
Hashtable
int hashCode()
Object.equals(java.lang.Object)
,
Hashtable