Liberty のカスタム TAI の開発
Liberty サーバーで提供される com.ibm.wsspi.security.tai.TrustAssociationInterceptor インターフェースを実装することによって、カスタム・トラスト・アソシエーション・インターセプター (TAI) クラスを開発することができます。
このタスクについて
トラスト・アソシエーション・インターフェースは、サード・パーティーのセキュリティー・サービスを Liberty サーバーに統合できるようにするサービス・プロバイダー API です。Web 要求の処理時に、Liberty サーバーは HttpServletRequest および HttpServletResponse をコールアウトし、トラスト・アソシエーション・インターセプターに渡します。HttpServletRequest は、インターセプターの isTargetInterceptor メソッドを呼び出して、インターセプターが要求を処理できるかどうかを確認します。適切なトラスト・アソシエーション・インターセプターが選択されると、HttpServletRequest は、インターセプターの negotiateValidateandEstablishTrust メソッドによって処理され、結果を TAIResult オブジェクトに戻します。カスタム TAI クラスの各メソッドに、独自のロジック・コードを追加することができます。
TAI インターフェースについては、Java™ API 資料も参照してください。各 Liberty API の Java API 文書は、オンライン IBM Knowledge Center のプログラミング・インターフェース (API) のセクションに詳述されていて、${wlp.install.dir}/dev ディレクトリーのいずれかの javadoc サブディレクトリー内の個別 .zip ファイル内にもあります。

例
SimpleTAI というサンプル TAI クラスを以下に示します。これには、TrustAssociationInterceptor インターフェースのすべての使用可能なメソッドもリストされています。
package com.ibm.websphere.security.sample;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ibm.websphere.security.WebTrustAssociationException;
import com.ibm.websphere.security.WebTrustAssociationFailedException;
import com.ibm.wsspi.security.tai.TAIResult;
import com.ibm.wsspi.security.tai.TrustAssociationInterceptor;
public class SimpleTAI implements TrustAssociationInterceptor {
public SimpleTAI() {
super();
}
/*
* @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#isTargetInterceptor
* (javax.servlet.http.HttpServletRequest)
*/
public boolean isTargetInterceptor(HttpServletRequest req)
throws WebTrustAssociationException {
//Add logic to determine whether to intercept this request
return true;
}
/*
* @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#negotiateValidateandEstablishTrust
* (javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
*/
public TAIResult negotiateValidateandEstablishTrust(HttpServletRequest req,
HttpServletResponse resp) throws WebTrustAssociationFailedException {
// Add logic to authenticate a request and return a TAI result.
String tai_user = "taiUser";
return TAIResult.create(HttpServletResponse.SC_OK, tai_user);
}
/*
* @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#initialize(java.util.Properties)
*/
public int initialize(Properties arg0)
throws WebTrustAssociationFailedException {
return 0;
}
/*
* @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#getVersion()
*/
public String getVersion() {
return "1.0";
}
/*
* @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#getType()
*/
public String getType() {
return this.getClass().getName();
}
/*
* @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#cleanup()
*/
public void cleanup()
{}
}
次のタスク
Liberty サーバーに TAI クラスを追加します。
- カスタム TAI クラスを JAR ファイル (例えば、simpleTAI.jar) に入れ、その JAR ファイルを共有ライブラリーとして使用可能にする。『Liberty での TAI の構成』を参照してください。
- カスタム TAI クラスをフィーチャーとしてパッケージする。『Liberty フィーチャーとしてのカスタム TAI の開発』を参照してください。