JavaTM 2 Platform
Standard Ed. 5.0

org.ietf.jgss
インタフェース GSSName


public interface GSSName

このインタフェースは、単一の GSS-API 主体エンティティをカプセル化します。アプリケーションでは、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);
   
 

導入されたバージョン:
1.4
関連項目:
export(), equals(GSSName), GSSManager.createName(String, Oid), GSSManager.createName(String, Oid, Oid), GSSManager.createName(byte[], Oid)

フィールドの概要
static Oid NT_ANONYMOUS
          匿名のエンティティを表す名前型です。
static Oid NT_EXPORT_NAME
          エクスポートされた名前を示す名前型です。
static Oid NT_HOSTBASED_SERVICE
          ホストベースのサービスの名前型を示す OID です。
static Oid NT_MACHINE_UID_NAME
          ローカルシステム上のユーザに対応する数値ユーザ ID を示す名前型です (Uid など)。
static Oid NT_STRING_UID_NAME
          ローカルシステム上のユーザの数値ユーザ ID を表す、数字の文字列を示す名前型です。
static Oid NT_USER_NAME
          ローカルシステム上の特定のユーザを示す名前型です。
 
メソッドの概要
 GSSName canonicalize(Oid mech)
          特定の機構に対して標準化された名前を作成します。
 boolean equals(GSSName another)
          2 つの GSSName オブジェクトを比較して、それらが同じエンティティを参照しているかどうかを検査します。
 boolean equals(Object another)
          この GSSName オブジェクトを、GSSName かもしれない別のオブジェクトと比較します。
 byte[] export()
          標準化された機構名 (MN) を連続するバイト表現として返します。
 Oid getStringNameType()
          この名前のプリント可能な表現の名前型を返します。
 int hashCode()
          この GSSName のハッシュコード値を返します。
 boolean isAnonymous()
          この名前オブジェクトが匿名のエンティティを表しているかどうかテストします。
 boolean isMN()
          この名前オブジェクトが機構名 (MN) を表しているかどうかテストします。
 String toString()
          GSSName オブジェクトのテキスト表現を返します。
 

フィールドの詳細

NT_HOSTBASED_SERVICE

static final Oid NT_HOSTBASED_SERVICE
ホストベースのサービスの名前型を示す OID です。この名前型は、ホストコンピュータに関連付けられたサービスを表すために使用します。この名前型は、「service」と「hostname」という 2 つの要素で作成し、service@hostname の形式になります。

この名前型は、次の OID 値を表します。
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 2(gss-host-based-services) }


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 など)。

この名前型は、次の 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 GSSException
2 つの GSSName オブジェクトを比較して、それらが同じエンティティを参照しているかどうかを検査します。

パラメータ:
another - この名前と比較する GSSName
戻り値:
2 つの名前に同じ基本要素が 1 つ以上含まれている場合は、true。どちらかの名前が匿名のエンティティを表している場合は、false
例外:
GSSException - 名前を比較できない場合、メジャーエラーコード GSSException.BAD_NAMETYPEGSSException.FAILURE を含む

equals

boolean equals(Object another)
この GSSName オブジェクトを、GSSName かもしれない別のオブジェクトと比較します。このメソッドの動作は、GSSException をスローしない点を除いて、equals と同じです。エラーが発生した場合は false を返します。

オーバーライド:
クラス Object 内の equals
パラメータ:
another - この名前と比較するオブジェクト
戻り値:
比較するオブジェクトが GSSName で、2 つの名前が同じエンティティを参照している場合は true
関連項目:
equals(GSSName)

hashCode

int hashCode()
この GSSName のハッシュコード値を返します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
hashCode 値
関連項目:
Object.equals(java.lang.Object), Hashtable

canonicalize

GSSName canonicalize(Oid mech)
                     throws GSSException
特定の機構に対して標準化された名前を作成します。

パラメータ:
mech - この名前を標準化するときの基準とする機構の OID
戻り値:
特定の機構に標準化された名前を表す基本要素だけで構成される GSSName
例外:
GSSException - メジャーエラーコード GSSException.BAD_MECHGSSException.BAD_NAMETYPEGSSException.BAD_NAMEGSSException.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_NAMEGSSException.BAD_NAMETYPEGSSException.FAILURE を含む

toString

String toString()
GSSName オブジェクトのテキスト表現を返します。プリントされた名前の形式 (返される文字列の構文を決定する) を取り出す場合は、getStringNameType メソッドを使用します。

オーバーライド:
クラス Object 内の toString
戻り値:
プリント可能な形式でこの名前を表現する String

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

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。