トラスト・アソシエーション・インターセプター (TAI) の com.ibm.wsspi.security.tai.TrustAssociationInterceptor インターフェースは、既存の com.ibm.websphere.security.TrustAssociationInterceptor インターフェースとは異なるいくつかの機能をサポートしています。
isTargetInterceptor メソッドは、要求がインターセプターと関連付けられた プロキシー・サーバーから発信されているかどうかを判断します。インプリメンテーション・コードは、着信要求オブジェクトを検査して、 要求を転送しているプロキシー・サーバーがこのインターセプターにとって有効なプロキシー・サーバーであるかどうかを判別しなければなりません。 このメソッドの結果によって、インターセプターが要求を処理するかどうかが決まります。
値が true ならば、WebSphere Application Server は TAI に要求を処理させます。
値が false ならば、WebSphere Application Server は TAI を無視します。
negotiateValidateandEstablishTrust メソッドは、要求を発信したプロキシー・サーバーが信頼できるかどうかを判断します。 インプリメンテーション・コードは、プロキシー・サーバーを認証しなければなりません。 この認証メカニズムは、プロキシー・サーバー特有のものです。 例えば、WebSeal サーバー用の製品インプリメンテーションでは、 このメソッドは、基本認証情報を HTTP ヘッダーから取得し、WebSphere Application Server が 使用するユーザー・レジストリーと 照らし合わせてこの情報の妥当性を検査します。クレデンシャルが有効でない場合、コードは WebTrustAssociationException 例外を作成します。これは、プロキシー・サー バーを信頼せず、要求を拒否することを示します。 クレデンシャルが有効な場合は、コードは TAIResult の結果を戻します。 これは、Web リソースを許可する場合に使用されるクライアント ID (サブジェクトおよびプリンシパル名) と要求処理の状態を示します。
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 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 の資料を参照してください。