public interface GSSName
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);
Modifier and Type | Field and Description |
---|---|
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
用于指示本地系统上的命名用户的名称类型。
|
Modifier and Type | Method and Description |
---|---|
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值:
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) service_name(4) }
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
-当名称所不能比拟的,包含以下主要错误代码:
GSSException.BAD_NAMETYPE
,
GSSException.FAILURE
boolean equals(Object another)
equals
在
Object
another
- 将该名称与之对比的对象
GSSName
,而这两个名字指的是同一个实体。
equals(GSSName)
int hashCode()
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
GSSName canonicalize(Oid mech) throws GSSException
mech
- 请求该名称的规范形式的机制的oid。
GSSName
,其中只包含一个表示该名称的原始元素,以规范化形式表示所需的机制。
GSSException
-包含以下主要错误代码:
GSSException.BAD_MECH
,
GSSException.BAD_NAMETYPE
,
GSSException.BAD_NAME
,
GSSException.FAILURE
byte[] export() throws GSSException
导出的名称在大型访问控制列表中使用时很有用,其中每个名称上创建GSSName
对象的开销以及从ACL中的每个名称调用equals方法可能是禁止的。
可以使用字节数组工厂方法GSSManager.createName
重新导入导出的名称,并将NT_EXPORT_NAME指定为名称类型对象标识符。 得到的GSSName
名称也将是MN。
GSSException
-包含以下主要错误代码:
GSSException.BAD_NAME
,
GSSException.BAD_NAMETYPE
,
GSSException.FAILURE
String toString()
GSSName
对象的文本表示。
要检索确定返回字符串语法的打印名称格式,请使用getStringNameType
方法。
Oid getStringNameType() throws GSSException
toString
方法获取的该名称的可打印表示的名称类型。
GSSException
- 包含以下主要错误代码:
GSSException.FAILURE
boolean isAnonymous()
boolean isMN()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.