Développement d'un intercepteur de relations de confiance pour Liberty
Vous pouvez développer une classe d'intercepteur de relations de confiance (TAI) en implémentant l'interface com.ibm.wsspi.security.tai.TrustAssociationInterceptor fournie avec le serveur Liberty.
Pourquoi et quand exécuter cette tâche
L'interface d'association de confiance est une API de fournisseur de services qui permet l'intégration de services de sécurité tiers avec un serveur Liberty. Au cours du traitement de la demande Web, le serveur Liberty émet un appel sortant et transmet HttpServletRequest et HttpServletResponse aux intercepteurs de relations de confiance. L'objet HttpServletRequest appelle la méthode isTargetInterceptor de chaque intercepteur pour savoir s'il est qualifié pour traiter la demande. Une fois que l'intercepteur approprié est sélectionné, sa méthode negotiateValidateandEstablishTrust traite l'objet HttpServletRequest et le résultat est renvoyé dans un objet TAIResult. Vous pouvez ajouter votre propre logique de traitement à chaque méthode de la classe de TAI personnalisée.
Consultez également le document d'API Java™ de l'interface TrustAssociationInterceptor. La documentation d'API Java de chaque API Liberty est détaillée dans la section Interfaces de programmation (Javadoc) du site en ligne IBM® Knowledge Center et est également disponible sous forme de fichier .zip séparé dans l'un des sous-répertoires javadoc du répertoire ${wlp.install.dir}/dev.

Exemple
Voici un exemple de classe de TAI appelée SimpleTAI, qui dresse également la liste de toutes les méthodes disponibles dans l'interface 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()
{}
}
Que faire ensuite
Ajoutez la classe d'intercepteur de relations de confiance au serveur Liberty.
- Placez la classe d'intercepteur de relations de confiance personnalisée dans un fichier JAR, par exemple simpleTAI.jar, puis rendez le fichier JAR accessible en tant que bibliothèque partagée. Voir Configuration d'un intercepteur de relations de confiance pour Liberty.
- Créez un package de la classe d'intercepteur de relations de confiance sous forme de fonction. Voir Développement d'un intercepteur de relations de confiance personnalisé en tant que fonction Liberty.