開發 Liberty 的自訂 TAI
您可以實作 Liberty 伺服器提供的 com.ibm.wsspi.security.tai.TrustAssociationInterceptor 介面,來開發自訂信任關聯攔截程式 (TAI) 類別。
關於這項作業
信任關聯介面是一種服務提供者 API,能夠讓協力廠商安全服務與 Liberty 伺服器整合。當處理 Web 要求時,Liberty 伺服器會呼叫 HttpServletRequest 和 HttpServletResponse,並將它們傳遞給信任關聯攔截程式。 HttpServletRequest 會呼叫攔截程式的 isTargetInterceptor 方法,以查看攔截程式是否能夠處理要求。 選取適當的信任關聯攔截程式之後,攔截程式的 negotiateValidateandEstablishTrust 方法會處理 HttpServletRequest,且會在 TAIResult 物件中傳回結果。 您可以新增您自己的邏輯程式碼到自訂 TAI 類別的每個方法中。
另請參閱 TAI 介面的 Java™ API 文件。 每一個 Liberty API 的 Java API 文件都詳述於線上 IBM Knowledge Center 的程式設計介面 (API) 區段,也以個別的 .zip 檔來提供(其位於 ${wlp.install.dir}/dev 目錄下的其中一個 javadoc 子目錄中)。
範例
以下是一個稱為 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 {
//新增邏輯來判斷是否攔截這個要求
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 {
// 新增邏輯來鑑別要求及傳回 TAI 結果。
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()
{}
}
下一步
新增 TAI 類別至 Liberty 伺服器。
使用下列其中一個方法,新增 TAI 類別至 Liberty 伺服器:
- 將自訂 TAI 類別放在 JAR 檔中,例如 simpleTAI.jar,然後將這個 JAR 檔作為共用程式庫使用。請參閱 配置 Liberty 以使用 TAI。
- 將自訂 TAI 類別包裝成特性。請參閱 將自訂 TAI 開發為 Liberty 特性。