サブジェクト作成用のトラスト・アソシエーション・インターセプターのサポート
トラスト・アソシエーション・インターセプター (TAI) の com.ibm.wsspi.security.tai.TrustAssociationInterceptor インターフェースは、既存の com.ibm.websphere.security.TrustAssociationInterceptor インターフェースとは異なるいくつかの機能をサポートしています。
- 主要メソッド名
- public boolean isTargetInterceptor (HttpServletRequest req)
isTargetInterceptor メソッドは、要求がインターセプターと関連付けられた プロキシー・サーバーから発信されているかどうかを判断します。実装コードは、着信要求オブジェクトを検査して、 要求を転送しているプロキシー・サーバーがこのインターセプターにとって有効なプロキシー・サーバーであるかどうかを判別しなければなりません。 このメソッドの結果によって、インターセプターが要求を処理するかどうかが決まります。
- メソッドの結果
値が true の場合、WebSphere® Application Server は TAI に要求を処理させます。
値が false の場合、WebSphere Application Server は TAI を無視します。
- 主要メソッド名
- public TAIResult negotiateValidateandEstablishTrust (HttpServletRequest
req, HttpServletResponse res)
negotiateValidateandEstablishTrust メソッドは、要求を発信したプロキシー・サーバーが信頼できるかどうかを判断します。 実装コードは、プロキシー・サーバーを認証しなければなりません。 この認証メカニズムは、プロキシー・サーバー特有のものです。 例えば、WebSEAL サーバー用の製品実装では、このメソッドは、 基本認証情報を HTTP ヘッダーから取得し、WebSphere Application Server が使用するユーザー・レジストリーと照合して この情報の妥当性を検査します。クレデンシャルが有効でない場合、コードは WebTrustAssociationException 例外を作成します。これは、プロキシー・サー バーを信頼せず、要求を拒否することを示します。 クレデンシャルが有効な場合は、コードは TAIResult の結果を戻します。これは、Web リソースを許可する場合に使用されるクライアント ID (サブジェクトおよびプリンシパル名) と要求処理の状態を示します。
- メソッドの結果
- TAIResult の結果を戻します。これは要求処理の状態を示しています。 リクエスト・オブジェクトの照会と、レスポンス・オブジェクトの変更ができます。
- 値が HttpServletResponse.SC_OK の場合、この応答は WebSphere Application Server に対し、TAI のネゴシエーションが終了したことを知らせます。また、 この応答は WebSphere Application Server に対し、TAIResult の結果の情報を使用して ユーザー ID を作成するように指示します。
- 他の値の場合、WebSphere Application Server に対し、HttpServletResponse 応答にある TAI 出力を Web クライアントに戻すように指示します。一般に、Web クライアントは追加情報を提供し、それから TAI に対して別の呼び出しを行います。
TAIResult | 説明 |
---|---|
public static TAIResult create(int status); | WebSphere Application Server に対する状況を示します。 ID 情報が提供されるため、この結果が SC_OK になることはあり得ません。 |
public static TAIResult create(int status, String principal); | WebSphere Application Server に対する状況を示し、このユーザーのユーザー ID または固有の ID を提供します。 WebSphere Application Server は ユーザー・レジストリーを照会してクレデンシャルを作成します。 |
public static TAIResult create(int status, String principal, Subject subject); | WebSphere Application Server に対する状況、 ユーザーのユーザー ID または固有の ID、およびカスタム・サブジェクトを示します。 サブジェクトに hashtable が含まれている場合は、プリンシパルは無視 されます。 サブジェクトの内容は最終的なユーザー・サブジェクトの一部となります。 |
// Modify the HttpServletResponse object
// The response code is meaningful only on the client
return TAIResult.create(HttpServletResponse.SC_CONTINUE);
// modify the HttpServletResponse object
return TAIResult.create(HttpServletResponse.SC_OK, userid);
// create Subject and place Hashtable in it
Subject subject = new Subject;
subject.getPublicCredentials().add(hashtable);
// the response code is meaningful for only the client
return TAIResult.create(HttpServletResponse.SC_OK, "ignored", subject);
//log error message
// ....
throw new WebTrustAssociationFailedException("TAI failed for this reason");
以下のメソッドは、TrustAssociationInterceptor インターフェースの追加メソッドです。 これらのメソッドは初期化、シャットダウン、および WebSphere Application Server に対する TAI の識別に使用されます。 詳しくは、Java™ の資料を参照してください。
- メソッド名
- public int initialize(Properties props)
- メソッドの結果
- このメソッドは TAI の初期化中に呼び出され、インターセプター用にカスタム・プロパティーが構成されている場合のみ呼び出されます。
- メソッド名
- public String getVersion()
- メソッドの結果
- このメソッドは TAI のバージョンを戻します。
- メソッド名
- public String getType()
- メソッドの結果
- このメソッドは TAI のタイプを戻します。
- メソッド名
- public void cleanup()
- メソッドの結果
- このメソッドは、WebSphere Application Server プロセスを停止するときに呼び出されます。 WebSphere Application Server プロセスの停止時に、TAI で必要なクリーンアップを実行できます。 クリーンアップが不要な場合、このメソッドは呼び出されません。