Un ProviderFactory.Callback est une interface par laquelle les justificatifs d'identité de l'utilisateur sont demandés auprès du client par le fournisseur d'API CM Rational, lorsque cela est nécessaire pour accéder à un référentiel de produits. Il existe également une sous-interface, StpProvider.StpCallback spécialisée pour ClearQuest et ClearCase.
La classe MyCallback() suivante crée des informations d'authentification de l'utilisateur (domaine, nom de connexion de l'utilisateur et mot de passe) et retourne au fournisseur.
// Classe de rappel automatique, nécessaire pour créer un fournisseur. classe statique privée MyCallback implémente le Callback { // Obtenez un objet d'authentification WVCM. // Cette implémentation du rappel automatique d'authentification // renvoie le nom d'utilisateur et le mot de passe spécifiés. // Le fournisseur appelle getAuthentication pour authentifier l'utilisateur en cours. Authentification publique getAuthentication(final String realm, int retryCount) { if (retryCount>0) lance UnsupportedOperationException("Justificatifs d'identité erronés"); renvoie nouvelle authentification () { public String loginName() { return "<the_domain>\\<the_username>"; } public String password() { return "<the_password>"; } }; } }
Chaque instance du fournisseur reçoit un objet Provider.Callback qui est utilisé pour obtenir des justificatifs d'identité pour tout référentiel auquel le client accède via cette instance du Fournisseur.
L'argument realm est une chaîne qui identifie le contexte pour lequel l'authentification est demandée (par exemple, une URL de serveur ou un nom de référentiel). Le format de la chaîne varie d'un sous-fournisseur à l'autre, et est destiné à s'afficher de manière mnémotechnique pour l'utilisateur.
Le retryCount indique le nombre de tentatives d'authentification auprès du référentiel.
Dans cet exemple, les arguments realm et retryCount ne sont pas utilisés. Cependant, les applications client doivent limiter les tentatives de retryCount à un petit nombre car il n'existe pas de limite prédéfinie de tentatives d'essai d'authentification et un fournisseur essaiera d'obtenir une authentification de manière répétée après un échec, à moins qu'un retryCount ne soit défini ou que la méthode getAuthentication ne génère une exception.
Dans une application client, le rappel automatique d'authentification peut ouvrir une boîte de dialogue visant à obtenir l'identifiant de connexion et le mot de passe de l'utilisateur. L'argument realm peut être présenté à l'utilisateur dans la boîte de dialogue, afin de montrer le référentiel produit auquel l'utilisateur se connecte (par exemple, une URL de serveur, ou une base de données utilisateur). Cette option peut être utile si les utilisateurs ont différents noms d'utilisateur et mots de passe pour des référentiels produit différents.
Le rappel automatique est effectué pour chaque realm différent auquel le client envoie des requêtes pendant qu'il utilise le fournisseur. Consultez les informations Javadoc sur la classe StpProvider pour obtenir des détails sur le rappel automatique effectué sur un fournisseur d'API CM Rational.