クラスGSSManager
GSSName、GSSCredential、GSSContextという3つのGSS-APIインタフェースを実装するクラスのインスタンスを作成できます。 さらに、利用できるメカニズ の一覧および各メカニズ がサポートしている名前型を照会するためのメソッドも組み込まれています。
デフォルトのGSSManagerサブクラスのインスタンスは、staticメソッドgetInstanceを使用して取得できます。その他のGSSManagerサブクラスは、アプリケーションから任意にインスタンス化できます。 デフォルトのGSSManagerインスタンスでは、Kerberos v5も含め、すべてのGSS-APIメカニズ がサポートされます。 このメカニズ は、OID「1.2.840.113554.1.2.2」として識別され、RFC 1964に定義されています。
GSSManager abstractクラスの拡張として作成したサブクラスは、既知のサービス・プロバイダ仕様を利用する、モジュール化されたプロバイダ・ベース層として実装されます。 GSSManager APIを使用すれば、これらのサブクラスの実装に対してプロバイダの優先 位を設定できます。 プロバイダ・ベースの構成がサポートされていない 合は、明確に定義された例外がスローされます。 アプリケーションを移植する可能性がある 合は、このことを認識し、例外をキャッチすることによって、適切に回復する必要があります。
プロバイダの使用方法として、次の3つの方法を想定しています。
- アプリケーションは、使用するプロバイダを考慮しない(デフォルト)
- アプリケーションは、特定のまたは任意のメカニズ を使用するときに、優先的に使用するプロバイダを要求する
- アプリケーションは、ローカル構成されたプロバイダをできる け使用する。た し、いくつかのメカニズ がサポートされていない 合は、そのアプリケーション自身のプロバイダを使用する
GSSManagerクラスには、これらの使用モードを有効にするために、2つのメソッドaddProviderAtFrontおよびaddProviderAtEndが用意されています。 これらのメソッドを実行すると、<プロバイダ, OID>というペアの 序付きリストが作成されます。各ペアは、特定のOIDに優先的に使用されるプロバイダを示しています。
GSSManagerによって作成された様々なGSS-APIオブジェクト間では、一定の対話が行われます。このとき、特定のメカニズ に使用されるプロバイダを、すべてのオブジェクトで使用する必要がある 合があります。 たとえば、あるGSSCredentialが、メカニズ mに使用されるプロバイダpの資 要 で構成されているとします。この要 は通常、メカニズ mにこのプロバイダpを使用するGSSContextに渡す必要があります。 移植性を最大化するには、異なるGSSManagerで作成したオブジェクトを混在させないことをお薦めします。また、すでにオブジェクトを作成したGSSManager上でaddProviderAtFrontメソッドを呼び出す 合には、可能なかぎり別のGSSManagerインスタンスを作成するようにしてく さい。
次のコード例は、GSSManagerの使用方法を示しています。
GSSManager manager = GSSManager.getInstance();
Oid krb5Mechanism = new Oid("1.2.840.113554.1.2.2");
Oid krb5PrincipalNameType = new Oid("1.2.840.113554.1.2.2.1");
// Identify who the client wishes to be
GSSName userName = manager.createName("duke", GSSName.NT_USER_NAME);
// Identify the name of the server. This uses a Kerberos specific
// name format.
GSSName serverName = manager.createName("nfs/foo.sun.com",
krb5PrincipalNameType);
// Acquire credentials for the user
GSSCredential userCreds = manager.createCredential(userName,
GSSCredential.DEFAULT_LIFETIME,
krb5Mechanism,
GSSCredential.INITIATE_ONLY);
// Instantiate and initialize a security context that will be
// established with the server
GSSContext context = manager.createContext(serverName,
krb5Mechanism,
userCreds,
GSSContext.DEFAULT_LIFETIME);
サーバー側では、次のソースが使用されます。
// Acquire credentials for the server
GSSCredential serverCreds = manager.createCredential(serverName,
GSSCredential.DEFAULT_LIFETIME,
krb5Mechanism,
GSSCredential.ACCEPT_ONLY);
// Instantiate and initialize a security context that will
// wait for an establishment request token from the client
GSSContext context = manager.createContext(serverCreds);
- 導入されたバージョン:
- 1.4
- 関連 目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract voidaddProviderAtEnd(Provider p, Oid mech) このメソッドを使用して、指定されたメカニズ をサポートするプロバイダが見つからないときに使用するプロバイダを、GSSManagerに設定します。abstract voidaddProviderAtFront(Provider p, Oid mech) このメソッドを使用して、サポートが必要なメカニズ に対して特定のプロバイダを優先して使用することをGSSManagerに設定します。abstract GSSContextcreateContext(byte[] interProcessToken) 以前にエクスポートされたコンテキストを作成するためのファクトリ・メソッドです。abstract GSSContextcreateContext(GSSCredential myCred) 受け入れ側でコンテキストを作成するためのファクトリ・メソッドです。abstract GSSContextcreateContext(GSSName peer, Oid mech, GSSCredential myCred, int lifetime) 起動側でコンテキストを作成するためのファクトリ・メソッドです。abstract GSSCredentialcreateCredential(int usage) デフォルトの資 を取得するためのファクトリ・メソッドです。abstract GSSCredentialcreateCredential(GSSName name, int lifetime, Oid[] mechs, int usage) 複数のメカニズ に対して資 を取得するためのファクトリ・メソッドです。abstract GSSCredentialcreateCredential(GSSName name, int lifetime, Oid mech, int usage) メカニズ の資 を1つ け取得するためのファクトリ・メソッドです。abstract GSSNamecreateName(byte[] name, Oid nameType) 指定された名前空間のbyte配列をGSSNameオブジェクトに変換するファクトリ・メソッドです。abstract GSSNamecreateName(byte[] name, Oid nameType, Oid mech) 指定された名前空間の名前を含むbyte配列をGSSNameオブジェクトに変換し、それをメカニズ に対して標準化するファクトリ・メソッドです。abstract GSSNamecreateName(String nameStr, Oid nameType) 指定された名前空間の文字列名をGSSNameオブジェクトに変換するファクトリ・メソッドです。abstract GSSNamecreateName(String nameStr, Oid nameType, Oid mech) 指定された名前空間の文字列名をGSSNameオブジェクトに変換し、それをメカニズ に対して標準化するファクトリ・メソッドです。static GSSManagerデフォルトのGSSManager実装を返します。abstract Oid[]getMechs()このGSSManagerを通してGSS-APIの呼出し側が利用できるメカニズ のリストを返します。abstract Oid[]getMechsForName(Oid nameType) 指定された名前型をサポートしているメカニズ のリストを返します。abstract Oid[]getNamesForMech(Oid mech) 指定されたメカニズ がサポートしている名前型を返します。
-
コンストラクタの詳細
-
GSSManager
public GSSManager()サブクラスが呼び出すためのコンストラクタ。
-
-
メソッドの詳細
-
getInstance
-
getMechs
public abstract Oid[] getMechs()このGSSManagerを通してGSS-APIの呼出し側が利用できるメカニズ のリストを返します。getInstance()メソッドから返されるデフォルトのGSSManagerのリストには、OID「1.2.840.113554.1.2.2」が含まれています。 このOIDは、RFC 1964に定義されているKerberos v5 GSS-APIメカニズ の識別IDです。- 戻り値:
- 利用できるメカニズ に対応するOidオブジェクトの配列。 利用できるメカニズ がない 合(たとえば、メカニズ が動的に構成されるため、その時点ではインストールされていない、など)
null値が返される。
-
getNamesForMech
public abstract Oid[] getNamesForMech(Oid mech) throws GSSException 指定されたメカニズ がサポートしている名前型を返します。デフォルトのGSSManagerインスタンスでは、Kerberos v5メカニズ がサポートされます。 このメカニズ (「1.2.840.113554.1.2.2」)を指定した 合は、少なくとも
GSSName.NT_HOSTBASED_SERVICE、GSSName.NT_EXPORT_NAME、およびKerberos v5固有のOID「1.2.840.113554.1.2.2.1」を含む名前型リストが返されます。 OID「1.2.840.113554.1.2.2.1」の名前空間はRFC 1964で定義されています。- パラメータ:
mech- 照会するメカニズ のOID- 戻り値:
- このメカニズ がサポートしている名前型に対応するOidオブジェクトの配列。
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_MECHGSSException.FAILURE- 関連 目:
-
getMechsForName
指定された名前型をサポートしているメカニズ のリストを返します。指定された名前型が
GSSName.NT_HOSTBASED_SERVICE、GSSName.NT_EXPORT_NAME、または「1.2.840.113554.1.2.2.1」のいずれかの 合、このリストには常にKerberos v5メカニズ (「1.2.840.113554.1.2.2」)が含まれます。- パラメータ:
nameType- 検索対象の名前型のOID- 戻り値:
- 指定された名前型をサポートしているメカニズ に対応するOidオブジェクトの配列。指定された名前型をサポートしているメカニズ が見つからない 合は、
nullが返される。 - 関連 目:
-
createName
public abstract GSSName createName(String nameStr, Oid nameType) throws GSSException 指定された名前空間の文字列名をGSSNameオブジェクトに変換するファクトリ・メソッドです。 作成されたGSSNameオブジェクトには通常、複数の名前表現(サポートされているメカニズ ごとに1つずつ)が含まれています。た し、名前空間の型パラメータにNT_EXPORT_NAMEが指定されているとき、またはこのGSS-API実装が複数メカニズ でない 合などは例外です。 このメソッドは、NT_EXPORT_NAME型では使用しないでく さい。以前にエクスポートされた名前が任意のバイトで構成される 合、その名前をStringとして表現すると、文字エンコーディング・スキー の問題が発生することがあるためです。 このような名前を変換する 合は、オーバーロード形式のこのメソッドcreateNameにそれらのバイトを直接渡すことをお薦めします。- パラメータ:
nameStr- 作成する名前のプリント可能形式を表す文字列。nameType- 指定されたプリント可能名の名前空間を指定するOID。nullを使用すれば、nameStrを検査する各メカニズ に各メカニズ 固有のデフォルトのプリント可能構文を使用できる。 このメソッドで名前型NT_EXPORT_NAMEはできる け使用しない。- 戻り値:
- 指定された主体を表すGSSName
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.BAD_MECH,GSSException.FAILURE- 関連 目:
-
createName
public abstract GSSName createName(byte[] name, Oid nameType) throws GSSException 指定された名前空間のbyte配列をGSSNameオブジェクトに変換するファクトリ・メソッドです。 作成されたGSSNameオブジェクトには通常、複数の名前表現(サポートされているメカニズ ごとに1つずつ)が含まれています。た し、名前空間の型パラメータにNT_EXPORT_NAMEが指定されているとき、またはこのGSS-API実装が複数メカニズ でない 合などは例外です。 渡されるバイトは、指定された名前型に選択されているエンコーディング・スキー に応じて、配下の各メカニズ によって解釈されます。- パラメータ:
name- 作成する名前を含むbyte配列nameType- byte配列に指定された名前の名前空間を指定するOID。byte配列を検査するときに、各メカニズ 固有のデフォルトの構文を使用する 合は、nullを指定できる。- 戻り値:
- 指定された主体を表すGSSName
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.BAD_MECH,GSSException.FAILURE- 関連 目:
-
createName
public abstract GSSName createName(String nameStr, Oid nameType, Oid mech) throws GSSException 指定された名前空間の文字列名をGSSNameオブジェクトに変換し、それをメカニズ に対して標準化するファクトリ・メソッドです。 いいかえると、このメソッドは、createNameメソッドを呼び出してからGSSName.canonicalizeメソッドを呼び出す2ステップと同等の処理を実行するユーティリティです。- パラメータ:
nameStr- 作成する名前のプリント可能形式を表す文字列。nameType- 指定されたプリント可能名の名前空間を指定するOID。nullを使用すれば、nameStrを検査する各メカニズ に各メカニズ 固有のデフォルトのプリント可能構文を使用できる。 このメソッドで名前型NT_EXPORT_NAMEはできる け使用しない。mech- メカニズ を示すOID。このメカニズ に対して名前が標準化される- 戻り値:
- 指定された主体を表すGSSName
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.BAD_MECH,GSSException.FAILURE- 関連 目:
-
createName
public abstract GSSName createName(byte[] name, Oid nameType, Oid mech) throws GSSException 指定された名前空間の名前を含むbyte配列をGSSNameオブジェクトに変換し、それをメカニズ に対して標準化するファクトリ・メソッドです。 いいかえると、このメソッドは、createNameメソッドを呼び出してからGSSName.canonicalizeメソッドを呼び出す2ステップと同等の処理を実行するユーティリティです。- パラメータ:
name- 作成する名前を含むbyte配列nameType- byte配列に指定された名前の名前空間を指定するOID。byte配列を検査するときに、各メカニズ 固有のデフォルトの構文を使用する 合は、nullを指定できる。mech- メカニズ を示すOID。このメカニズ に対して名前が標準化される- 戻り値:
- 指定された主体を表すGSSName
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.BAD_MECH,GSSException.FAILURE- 関連 目:
-
createCredential
public abstract GSSCredential createCredential(int usage) throws GSSException デフォルトの資 を取得するためのファクトリ・メソッドです。 このメソッドを呼び出すと、メカニズ 、名前、および寿命の組み合わせに対してシステ 固有のデフォルトが使用されます。- パラメータ:
usage- この資 オブジェクトの使用目的。 このパラメータの値は、GSSCredential.INITIATE_AND_ACCEPT、GSSCredential.ACCEPT_ONLY、およびGSSCredential.INITIATE_ONLYのいずれかにする必要がある。- 戻り値:
- 要求された型のGSSCredential。
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_MECH,GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.CREDENTIALS_EXPIRED,GSSException.NO_CRED,GSSException.FAILURE- 関連 目:
-
createCredential
public abstract GSSCredential createCredential(GSSName name, int lifetime, Oid mech, int usage) throws GSSException メカニズ の資 を1つ け取得するためのファクトリ・メソッドです。デフォルト以外のlifetime値は基本となっているメカニズ で受け付けられない 合があります。その 合、アプリケーションは、返された資 の
getRemainingLifetimeを呼び出す必要があります。- パラメータ:
name- この資 を取得する主体の名前。 デフォルトの主体を指定する 合はnullを使用する。lifetime- 資 の残りの寿命(秒単位)。 資 の寿命を設定可能な最大期限にすることを要求するには、GSSCredential.INDEFINITE_LIFETIMEを使用する。 資 のデフォルトの寿命を要求する 合はGSSCredential.DEFAULT_LIFETIMEを使用する。mech- 目的のメカニズ のOID。 デフォルトのメカニズ を要求する 合は(Oid) nullを使用する。usage- この資 オブジェクトの使用目的。 このパラメータの値は、GSSCredential.INITIATE_AND_ACCEPT、GSSCredential.ACCEPT_ONLY、およびGSSCredential.INITIATE_ONLYのいずれかにする必要がある。- 戻り値:
- 要求された型のGSSCredential。
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_MECH,GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.CREDENTIALS_EXPIRED,GSSException.NO_CRED,GSSException.FAILURE- 関連 目:
-
createCredential
public abstract GSSCredential createCredential(GSSName name, int lifetime, Oid[] mechs, int usage) throws GSSException 複数のメカニズ に対して資 を取得するためのファクトリ・メソッドです。 このメソッドは、配列mechsに指定されたメカニズ ごとに資 を取得しようとします。 資 の取得に成功したメカニズ を確認するには、呼出し側でGSSCredential.getMechsメソッドを使用する必要があります。デフォルト以外のlifetime値は基本となっているメカニズ で受け付けられない 合があります。その 合、アプリケーションは、返された資 の
getRemainingLifetimeを呼び出す必要があります。- パラメータ:
name- この資 を取得する主体の名前。 デフォルトの主体を指定する 合はnullを使用する。lifetime- 資 の残りの寿命(秒単位)。 資 の寿命を設定可能な最大期限にすることを要求するには、GSSCredential.INDEFINITE_LIFETIMEを使用する。 資 のデフォルトの寿命を要求する 合はGSSCredential.DEFAULT_LIFETIMEを使用する。mechs- この資 を取得するメカニズ を示すOIDの配列。 デフォルトのメカニズ をリクエストする 合は、(Oid[]) nullを使用する。usage- この資 オブジェクトの使用目的。 このパラメータの値は、GSSCredential.INITIATE_AND_ACCEPT、GSSCredential.ACCEPT_ONLY、およびGSSCredential.INITIATE_ONLYのいずれかにする必要がある。- 戻り値:
- 要求された型のGSSCredential。
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.BAD_MECH,GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.CREDENTIALS_EXPIRED,GSSException.NO_CRED,GSSException.FAILURE- 関連 目:
-
createContext
public abstract GSSContext createContext(GSSName peer, Oid mech, GSSCredential myCred, int lifetime) throws GSSException 起動側でコンテキストを作成するためのファクトリ・メソッドです。デフォルト以外のlifetime値は配下のメカニズ で受け付けられない 合があります。その 合、アプリケーションは、返されたコンテキストに対して
getLifetimeを呼び出す必要があります。- パラメータ:
peer- ターゲット・ピアの名前。mech- 目的のメカニズ のOID。 デフォルトのメカニズ を要求する 合はnullを使用する。myCred- 起動側の資 。 デフォルトの起動側主体として機能させる 合は、nullを使用する。lifetime- コンテキストにリクエストする寿命(秒単位)。 コンテキストの寿命を設定可能な最大期限にすることをリクエストするには、GSSContext.INDEFINITE_LIFETIMEを使用する。 コンテキストのデフォルトの寿命をリクエストする 合はGSSContext.DEFAULT_LIFETIMEを使用する。- 戻り値:
- 確立されていないGSSContext
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.NO_CREDGSSException.CREDENTIALS_EXPIREDGSSException.BAD_NAMETYPEGSSException.BAD_MECHGSSException.FAILURE- 関連 目:
-
createContext
public abstract GSSContext createContext(GSSCredential myCred) throws GSSException 受け入れ側でコンテキストを作成するためのファクトリ・メソッドです。 コンテキストのプロパティは、受け入れメソッドに指定された入力トークンによって決まります。- パラメータ:
myCred- 受け入れ側の資 。 デフォルトの受け入れ側主体として機能させる 合は、nullを使用する。- 戻り値:
- 確立されていないGSSContext
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.NO_CREDGSSException.CREDENTIALS_EXPIREDGSSException.BAD_MECHGSSException.FAILURE- 関連 目:
-
createContext
public abstract GSSContext createContext(byte[] interProcessToken) throws GSSException 以前にエクスポートされたコンテキストを作成するためのファクトリ・メソッドです。 コンテキストのプロパティは、入力トークンによって決まります。setメソッドを使用して変更することはできません。セキュリティ・コンテキストのプロセス間転送を実装がサポートすることは必 ではありません。 コンテキストをエクスポートする前に
GSSContext.isTransferableを呼び出すと、コンテキストを転送可能かどうかがわかります。 コンテキストの転送をサポートしていない実装でこのメソッドを呼び出すと、エラー・コードGSSException.UNAVAILABLEが設定されたGSSExceptionがスローされます。- パラメータ:
interProcessToken- 以前にexportメソッドから生成されたトークン。- 戻り値:
- 以前に確立されたGSSContext
- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.NO_CONTEXT,GSSException.DEFECTIVE_TOKEN,GSSException.UNAVAILABLE,GSSException.UNAUTHORIZED,GSSException.FAILURE- 関連 目:
-
addProviderAtFront
public abstract void addProviderAtFront(Provider p, Oid mech) throws GSSException このメソッドを使用して、サポートが必要なメカニズ に対して特定のプロバイダを優先して使用することをGSSManagerに設定します。Oidではなくnull値を使用したときは、使用するメカニズ に関係なく、指定されたプロバイダが優先して使用されます。 指定されたプロバイダが必要なメカニズ をサポートしていない 合に け、別のプロバイダが使用されます。このメソッドを繰返し呼び出しても、以前の設定は保持されます。た し、それらの優先 位が低くなり、作成されたプロバイダと
Oidのペアの 序付きリストが最優先されます。Oidにnullを指定してaddProviderAtFrontを呼び出すと、GSSManagerインスタンスでこのプロバイダに設定された以前の優先 位がすべて削除されます。Oidにnull以外の値を指定してaddProviderAtFrontを呼び出すと、このメカニズ とこのプロバイダを使用して設定された以前の優先 位がすべて削除されます。GSSManager実装がプラグイン可能なプロバイダ・アーキテクチャを備えたSPIをサポートしていない 合は、状態コードGSSException.UNAVAILABLEが設定されたGSSExceptionがスローされ、この操作が利用できないことが示されます。
たとえば、メカニズ が必要なときは、プロバイダAを最初に確認するように設定するには、次の呼出しを行います。
GSSManager mgr = GSSManager.getInstance(); // mgr may at this point have its own pre-configured list // of provider preferences. The following will prepend to // any such list: mgr.addProviderAtFront(A, null);以前に設定されたAを確認する前に、OIDがm1であるメカニズ をプロバイダBから取得する 合は、次の呼出しを行います。mgr.addProviderAtFront(B, m1);
GSSManagerは、m1が必要な 合、まずBを確認します。 Bがm1をサポートしていない 合は、次にAを確認します。 メカニズ m2が必要で、m2がm1と異なる 合は、Bを省略して直接Aを確認します。たとえば、同じGSSManagerインスタンスに対して、次の呼出しを行うとします。
mgr.addProviderAtFront(B, null)
ペア(B, m1)の以前の設定がこの設定に包含されて、削除されます。 この結果、優先 位のリストは{(B, null),(A, null), ...//以前に設定されたリスト}になります。た し、次の呼出しには注意してく さい。
mgr.addProviderAtFront(A, m3)
この呼出しを実行しても、以前の設定(A, null)を包含せず、リストは{(A, m3),(B, null),(A, null), ...}になります。- パラメータ:
p- mechに指定したメカニズ のサポートが必要なときに、使用するプロバイダのインスタンス。mech- このプロバイダが設定されているメカニズ- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.UNAVAILABLE,GSSException.FAILURE
-
addProviderAtEnd
public abstract void addProviderAtEnd(Provider p, Oid mech) throws GSSException このメソッドを使用して、指定されたメカニズ をサポートするプロバイダが見つからないときに使用するプロバイダを、GSSManagerに設定します。 Oidではなくnull値が使用したときは、指定されたプロバイダがすべてのメカニズ に使用されます。このメソッドを繰返し呼び出しても、以前の設定は保持されます。た し、それらの優先 位は新しい設定より高くなり、作成されたプロバイダとOidのペアの 序付きリストの優先 位がもっとも低くなります。 したがって、古いプロバイダ設定は、この設定の前に最初に使用されます。
以前に設定した既存の優先 位の中に、ここで設定する優先 位と競合するものがある 合、この要求は無視されます。
GSSManager実装がプラグイン可能なプロバイダ・アーキテクチャを備えたSPIをサポートしていない 合は、状態コードGSSException.UNAVAILABLEが設定されたGSSExceptionがスローされ、この操作が利用できないことが示されます。
たとえば、Oidがm1であるメカニズ が必要なときは、システ のデフォルト・プロバイダを最初に確認し、m1がサポートされていない 合のみ、プロバイダAを確認します。 次の呼出しを行います。
GSSManager mgr = GSSManager.getInstance(); mgr.addProviderAtEnd(A, m1);設定したプロバイダをすべて確認してから、すべてのメカニズ についてプロバイダBを確認する 合は、次の呼出しを行います。mgr.addProviderAtEnd(B, null);
優先 位のリストが、{...,(A, m1),(B, null)}になります。たとえば、同じGSSManagerインスタンスに対して、次の呼出しを行うとします。
mgr.addProviderAtEnd(B, m2)
ペア(B, null)の以前の設定がこの設定を包含し、この要求は無視されます。 既存のペア(A, m1)または(B, null)に対して要求した 合も同じ結果になります。た し、次の呼出しには注意してく さい。
mgr.addProviderAtEnd(A, null)
この呼出しを実行しても、以前の設定(A, m1)によって包含されず、リストは{...,(A, m1),(B, null),(A, null)}になります。- パラメータ:
p- mechに指定したメカニズ のサポートが必要なときに、使用するプロバイダのインスタンス。mech- このプロバイダが設定されているメカニズ- スロー:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.UNAVAILABLE,GSSException.FAILURE
-