public interface GSSName
GSSManagerクラスに含まれるcreateNameメソッドのいずれかを使用してこのインタフェースの実装を取得します。 GSSNameは、エンティティの複数の表現、つまり複数のプリミティブ名前要素(サポートされている配下のメカニズムごとに1つずつ)で構成されます。 GSSでは、1つだけのメカニズムの要素を含むGSSNameをメカニズム名(MN)と呼びます。
主体の識別に使用される名前空間は、認証メカニズムごとに異なります。このため、複数メカニズム環境では、GSS-APIのネーミング・サポートが複雑になります。また、単一メカニズム環境の場合でも、配下のメカニズムが複数の名前空間をサポートしている場合は、同様に複雑になります。 名前の形式とその定義は、Oid'sによって識別されます。一部の標準型は、このインタフェースに定義されています。 名前の形式は、その名前型の一意のOidに基づいて派生させることができます。
次のコード例では、GSSNameインタフェースを使用しています。 まず、GSSNameを作成し、それをMNに変換します。次に、名前を比較し、その名前の出力可能な表現を取得します。最後に、それをbyte配列にエクスポートしてから再インポートし、新しい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);
セキュリティ・マネージャがインストールされている場合、そのレルムを提供せずにKerberos name要素を含むGSSNameを作成するには、ServicePermissionを付与する必要があり、そのアクセス許可のサービス・プリンシパルがKerberosネーム要素レルム内にある必要があります。 たとえば、createName("user", NT_USER_NAME)の結果にKerberos名前要素user@EXAMPLE.COMが含まれている場合、サービス主体host/www.example.com@EXAMPLE.COM (および任意のアクション)を持つServicePermissionを付与する必要があります。 それ以外の場合は、GSSException.FAILUREエラー・コードを含むGSSExceptionがスローされます。 -
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static OidNT_ANONYMOUS匿名のエンティティを表す名前型です。static OidNT_EXPORT_NAMEエクスポートされた名前を示す名前型です。exportメソッドによって生成されます。static OidNT_HOSTBASED_SERVICEホスト・ベースのサービスの名前型を示すOIDです。static OidNT_MACHINE_UID_NAMEローカル・システム上のユーザーに対応する数値ユーザーIDを示す名前型です。static OidNT_STRING_UID_NAMEローカル・システム上のユーザーの数値ユーザーIDを表す、数字の文字列を示す名前型です。static OidNT_USER_NAMEローカル・システム上の特定のユーザーを示す名前型です。 -
メソッドのサマリー
修飾子と型 メソッド 説明 GSSNamecanonicalize(Oid mech)特定のメカニズムに対して標準化される名前を作成します。booleanequals(Object another)このGSSNameオブジェクトを、GSSNameである可能性がある別のオブジェクトと比較します。booleanequals(GSSName another)2つのGSSNameオブジェクトを比較して、それらが同じエンティティを参照しているかどうかを検査します。byte[]export()標準化されたメカニズム名(MN)を連続するバイト表現として返します。この表現は、承認機能が名前をバイト単位に直接比較するときに適しています。OidgetStringNameType()この名前のプリント可能な表現の名前型を返します。toStringメソッドからは、この名前型で返されます。inthashCode()このGSSNameのハッシュ・コード値を返します。booleanisAnonymous()この名前オブジェクトが匿名のエンティティを表しているかどうかテストします。booleanisMN()この名前オブジェクトがメカニズム名(MN)を表しているかどうかテストします。StringtoString()GSSNameオブジェクトのテキスト表現を返します。
-
フィールド詳細
-
NT_HOSTBASED_SERVICE
static final Oid NT_HOSTBASED_SERVICEホスト・ベースのサービスの名前型を示すOIDです。 この名前型は、ホスト・コンピュータに関連付けられたサービスを表すために使用します。 この名前型は、「service」と「hostname」という2つの要素で作成し、service@hostnameの形式になります。これは次のOID値を表します。
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) service_name(4) } -
NT_USER_NAME
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) } -
NT_MACHINE_UID_NAME
static final Oid NT_MACHINE_UID_NAMEローカル・システム上のユーザーに対応する数値ユーザーIDを示す名前型です(Uidなど)。(Uidなど)。これは次のOID値を表します。
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) machine_uid_name(2) } -
NT_STRING_UID_NAME
static final Oid NT_STRING_UID_NAMEローカル・システム上のユーザーの数値ユーザーIDを表す、数字の文字列を示す名前型です。これは次のOID値を表します。
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) string_uid_name(3) } -
NT_ANONYMOUS
static final Oid NT_ANONYMOUS匿名のエンティティを表す名前型です。これは次のOID値を表します。
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 3(gss-anonymous-name) } -
NT_EXPORT_NAME
static final Oid NT_EXPORT_NAMEエクスポートされた名前を示す名前型です。exportメソッドによって生成されます。これは次のOID値を表します。
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 4(gss-api-exported-name) }
-
-
メソッドの詳細
-
equals
boolean equals(GSSName another) throws GSSException2つのGSSNameオブジェクトを比較して、それらが同じエンティティを参照しているかどうかを検査します。- パラメータ:
another- この名前と比較するGSSName- 戻り値:
- 2つの名前に同じ基本要素が1つ以上含まれている場合は、true。 どちらかの名前が匿名のエンティティを表している場合は、false。
- 例外:
GSSException- 名前を比較できない場合、次のメジャー・エラー・コードを含む。GSSException.BAD_NAMETYPE,GSSException.FAILURE
-
equals
boolean equals(Object another)このGSSNameオブジェクトを、GSSNameである可能性がある別のオブジェクトと比較します。 このメソッドの動作は、GSSExceptionをスローしない点を除いて、equalsと同じです。エラーが発生した場合はfalseを返します。- オーバーライド:
equals、クラス:Object- パラメータ:
another- この名前と比較するオブジェクト- 戻り値:
- 比較するオブジェクトが
GSSNameで、2つの名前が同じエンティティを参照している場合はtrue。 - 関連項目:
equals(GSSName)
-
hashCode
int hashCode()このGSSNameのハッシュ・コード値を返します。- オーバーライド:
hashCode、クラス:Object- 戻り値:
- hashCode値
- 関連項目:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
canonicalize
GSSName canonicalize(Oid mech) throws GSSException特定のメカニズムに対して標準化される名前を作成します。- パラメータ:
mech- この名前の標準化がリクエストされるときの基準とするメカニズムのOID。- 戻り値:
- 特定のメカニズムに標準化された名前を表す基本要素だけで構成される
GSSName。 - 例外:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_MECH,GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.FAILURE
-
export
byte[] export() throws GSSException標準化されたメカニズム名(MN)を連続するバイト表現として返します。この表現は、承認機能が名前をバイト単位に直接比較するときに適しています。 MNでない名前の場合、NAME_NOT_MNステータス・コードが設定されたGSSExceptionがスローされることがあります。 例外がスローされないようにするには、システム固有のデフォルトのメカニズムを使用して名前を正規化してから、エクスポートする必要があります。 エクスポートされた名前オブジェクトは、ヘッダーとトレーラから構成されます。ヘッダーには、名前を認証したメカニズムを識別するOIDが含まれます。トレーラには、名前自体が含まれます。トレーラの構文は、各メカニズムの仕様によって定義されます。 出力バッファのヘッダーの形式は、RFC 2743に指定されています。エクスポートされた名前は、大きなアクセス制御リストで使用します。アクセス制御リストが大きい場合は、各名前に対して
GSSNameオブジェクトを作成し、ACLからequalsメソッドを呼び出すときのオーバーヘッドが大きくなることがあります。エクスポートされた名前を再インポートするには、byte配列のファクトリ・メソッド
GSSManager.createNameを使用し、名前型のオブジェクト識別子としてNT_EXPORT_NAMEを指定します。 その結果として返されるGSSName名もMNです。- 戻り値:
- エクスポートされた名前を含むbyte[]。 RFC 2743には、このbyte配列に使用する、メカニズムに依存しないエクスポートされた名前オブジェクトの形式が定義されている。
- 例外:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_NAME,GSSException.BAD_NAMETYPE,GSSException.FAILURE
-
toString
String toString()GSSNameオブジェクトのテキスト表現を返します。 出力された名前の形式(返される文字列の構文を決定する)を取り出す場合は、getStringNameTypeメソッドを使用します。 -
getStringNameType
Oid getStringNameType() throws GSSExceptionこの名前のプリント可能な表現の名前型を返します。toStringメソッドからは、この名前型で返されます。- 戻り値:
- toStringメソッドから返される名前の名前空間を表すOID。
- 例外:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.FAILURE
-
isAnonymous
boolean isAnonymous()この名前オブジェクトが匿名のエンティティを表しているかどうかテストします。- 戻り値:
- 匿名の名前である場合はtrue、そうでない場合はfalse。
-
isMN
boolean isMN()この名前オブジェクトがメカニズム名(MN)を表しているかどうかテストします。 MNは、特定のメカニズムの基本名前要素を含むGSSNameです。- 戻り値:
- MNである場合はtrue、そうでない場合はfalse。
-