Prise en charge de la fonction d'intercepteur (Trust Association Interceptor) pour la création du sujet

L'interface TAI (Trust Association Interceptor), com.ibm.wsspi.security.tai.TrustAssociationInterceptor, prend en charge plusieurs fonctions et diffère de l'interface com.ibm.websphere.security.TrustAssociationInterceptor existante.

L'interface TAI prend en charge le processus d'authentification négociée à phases multiples. Par exemple, certains systèmes requièrent un protocole de réponse au client par invite stimulation-réponse. Les deux méthodes de clés de cette nouvelle interface sont les suivantes :
Nom de la méthode de clé
public boolean isTargetInterceptor (HttpServletRequest req)

La méthode isTargetInterceptor permet de déterminer si la demande a été émise avec le serveur proxy associé à l'intercepteur. Le code d'implémentation doit examiner l'objet de demande entrante et déterminer si le serveur proxy qui réachemine la demande est valide pour cet intercepteur. C'est à l'examen du résultat de cette méthode que l'intercepteur décide de traiter ou non la demande.

Résultat de la méthode

La valeur true indique à WebSphere Application Server que l'intercepteur TAI doit traiter la requête.

La valeur false indique à WebSphere Application Server qu'il doit ignorer l'intercepteur TAI.

Nom de la méthode de clé
public TAIResult negotiateValidateandEstablishTrust (HttpServletRequest req, HttpServletResponse res)

La méthode negotiateValidateandEstablishTrust détermine si le serveur proxy dont émane la demande est digne de confiance. Le code d'implémentation doit authentifier le serveur proxy. Le mécanisme d'authentification est propre au serveur proxy. Par exemple, dans l'implémentation produit du serveur WebSEAL, cette méthode extrait les informations d'authentification de base de l'en-tête HTTP et contrôle leur validité par rapport au registre d'utilisateurs utilisé par WebSphere Application Server. Si les données d'identification ne sont pas valides, le code génère l'exception WebTrustAssociationException, indiquant que le proxy n'est pas digne de confiance et que la demande est rejetée. Si les données d'identification sont valides, le code renvoie un résultat TAIResult, qui indique l'état du traitement de la demande et l'identité du client (sujet et nom du principal) à utiliser pour autoriser la ressource Web.

Résultat de la méthode
Renvoie un résultat TAIResult, qui indique l'état du traitement de la demande. Vous pouvez interroger l'objet de demande et modifier l'objet de réponse.
La classe TAIResult dispose de trois méthodes statiques de création d'un résultat TAIResult. Les méthodes de création TAIResult prennent un type int comme premier paramètre. WebSphere Application Server s'attend à un code retour de requête HTTP valide et interprété de l'une des façons suivantes :
  • Si la valeur est HttpServletResponse.SC_OK, cette réponse indique à WebSphere Application Server que l'intercepteur TAI a terminé sa négociation. La réponse indique également à WebSphere Application Server qu'il doit utiliser les informations contenues dans le résultat TAIResult pour créer une identité utilisateur.
  • Les autres valeurs indiquent à WebSphere Application Server qu'il doit renvoyer au client Web la sortie TAI placée dans la réponse HttpServletResponse. En général, le client Web fournit des informations supplémentaires puis appelle de nouveau le TAI.
Tableau 1. Définitions TAIResults. La signification des résultats TAIResults créés est la suivante :
TAIResult Explications
public static TAIResult create(int status); Indique un état à WebSphere Application Server. L'état ne peut pas être SC_OK car les informations d'identité sont fournies.
public static TAIResult create(int status, String principal); Indique un état à WebSphere Application Server et fournit l'ID utilisateur ou l'ID unique de cet utilisateur. WebSphere Application Server crée les justificatifs en interrogeant le registre d'utilisateurs.
public static TAIResult create(int status, String principal, Subject subject); Indique un état à WebSphere Application Server, l'ID utilisateur ou l'ID unique pour l'utilisateur, ainsi qu'un sujet personnalisé. Si le sujet contient une table de hachage, le principal est ignoré. Le contenu du sujet devient partie intégrante du sujet d'utilisateur final.
Les exemples suivants utilisent la méthode negotiateValidateandEstablishTrust d'une interface TAI.
L'exemple de code suivant indique qu'une négociation supplémentaire est nécessaire :
// Modifie l'objet HttpServletResponse
//  Le code de réponse n'a de signification que pour le client
	return TAIResult.create(HttpServletResponse.SC_CONTINUE);
L'exemple de code suivant indique que l'interface TAI a déterminé l'identité de l'utilisateur. WebSphere Application Server reçoit uniquement l'ID utilisateur et interroge le registre d'utilisateurs pour obtenir les informations supplémentaires :
// modifie l'objet HttpServletResponse
	return TAIResult.create(HttpServletResponse.SC_OK, userid);
L'exemple de code suivant indique que l'interface TAI a déterminé l'identité de l'utilisateur. WebSphere Application Server reçoit les informations utilisateur complètes contenues dans la table de hachage. Pour plus d'informations sur la table de hachage, voir Configuration du mappage d'identités entrantes. Dans cet exemple de code, la table de hachage est placée dans la partie de données d'identification publique du sujet :
// crée le sujet et y place la table de hachage
	Subject subject = new Subject;
	subject.getPublicCredentials().add(hashtable);
// Le code de réponse n'a de signification que pour le client
	return TAIResult.create(HttpServletResponse.SC_OK, "ignored", subject);
L'exemple de code suivant indique un échec d'authentification. Echec de la requête d'authentification par WebSphere Application Server :
//consignation du message d'erreur
// ....
	throw new WebTrustAssociationFailedException("TAI failed for this reason");

Les méthodes suivantes sont des méthodes supplémentaires de l'interface TrustAssociationInterceptor. Ces méthodes sont utilisées pour l'initialisation, la fermeture et l'identification de l'intercepteur TAI auprès de WebSphere Application Server. Pour plus d'informations, voir la Java™.

Nom de la méthode
public int initialize(Properties props)

Résultat de la méthode
Cette méthode n'est appelée lors de l'initialisation TAI que si des propriétés personnalisées sont configurées pour l'intercepteur.
Nom de la méthode
public String getVersion()
Résultat de la méthode
Cette méthode renvoie la version de la TAI.
Nom de la méthode
public String getType()
Résultat de la méthode
Cette méthode renvoie le type de la TAI.
Nom de la méthode
public void cleanup()
Résultat de la méthode
Cette méthode est appelée lors de l'arrêt du processus WebSphere Application Server. L'arrêt du processus WebSphere Application Server permet à l'intercepteur TAI d'effectuer toutes les opérations de nettoyage nécessaires. Cette méthode n'est pas nécessaire lorsqu'aucun nettoyage n'est requis.

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_taisubcreate
Nom du fichier : rsec_taisubcreate.html