Creazione di un callback

Un ProviderFactory.Callback è un'interfaccia tramite cui le credenziali utente vengono richieste dal client dal provider Rational CM API quando sono necessarie per accedere al repository del prodotto. Esiste anche un'interfaccia secondaria, StpProvider.StpCallback specializzata per ClearQuest e ClearCase.

La classe MyCallback() riportata di seguito crea le informazioni di autenticazione utente (dominio, nome di accesso e password dell'utente) e restituisce al provider.

// Classe Callback, necessaria per creare un provider. 
private static class MyCallback implements Callback 
{
     // Ottenere un oggetto autenticazione WVCM.
     // Questa implementazione del callback di autenticazione
     // restituisce nome utente e password specificati.

     // Il Provider richiama getAuthentication per autenticare l'utente corrente.
     public Authentication getAuthentication(final String realm, int retryCount)
          {
          if (retryCount>0) 
              throw UnsupportedOperationException("Bad credentials");
          return new Authentication() 
               {
               public String loginName()  { return "<the_domain>\\<the_username>"; }
               public String password() { return "<the_password>"; }
               };
          }
}

Ad ogni istanza di provider viene fornito un oggetto Provider.Callback che viene utilizzato per ottenere le credenziali di ogni repository al quale accede il client tramite quella istanza provider.

L'argomento realm è una stringa che identifica il contesto per cui è stata richiesta l'autenticazione (ad esempio un URL di server o un nome repository). Il formato della stringa varia di sottoprovider in sottoprovider ed è progettata per essere visualizzata all'utente sotto forma di mnemonico.

retryCount specifica il numero di volte in cui si tenta l'autenticazione al repository.

In questo esempio gli argomenti realm e retryCount non vengono utilizzati. Tuttavia, le applicazioni client devono limitare i tentativi retryCount a un numero minimo perché non esiste un limite preimpostato sui tentativi di autenticazione e un provider tenterà ripetutamente di ottenere l'autenticazione dopo un esito negativo, a meno che il metodo retryCount non sia impostato o il metodo getAuthentication non generi un'eccezione.

Nota: Il dominio può essere parte di un nome utente. Un accesso a Rational ClearCase richiede un dominio come parte del nome utente per i server su Windows®.

In un'applicazione client, il callback di autenticazione può aprire una finestra di accesso per raccogliere il nome accesso e la password dell'utente. Nella finestra di dialogo può essere presentato all'utente l'argomento realm, per visualizzare a quale repository di prodotto si sta collegando l'utente (ad esempio, l'URL di un server o un database utente). Questa opzione può essere utile se gli utenti hanno nomi utente e password diversi per repository di prodotti differenti.

Il callback viene richiamato per ogni ambito diverso al quale il client effettua le richieste durante l'utilizzo del provider. Consultare le informazioni Javadoc relativi alla classe StpProvider per i dettagli relativi ai requisiti sul Callback inoltrati a un provider Rational CM API.


Feedback