Criando um Retorno de Chamada

Um ProviderFactory.Callback é uma interface por meio da qual as credenciais do usuário são solicitadas do cliente pelo Provedor do Rational CM API quando necessário para acessar um repositório de produto. Também existe uma subinterface, StpProvider.StpCallback especializada para o ClearQuest e o ClearCase.

A classe MyCallback() a seguir cria informações sobre autenticação do usuário (domínio, nome de login e senha do usuário) e retorna ao provedor.

// Classe de retorno de chamada, necessária para criar um provedor. 
private static class MyCallback implements Callback 
{
     // Obter um objeto Autenticação do WVCM.
     // Esta implementação do retorno de chamada da autenticação
     // retorna o nome de usuário e a senha especificados.

     // O Provedor chama o getAuthentication para autenticar o usuário atual.
     public Authentication getAuthentication(final String realm, int retryCount)
          {
          if (retryCount>0) 
              throw UnsupportedOperationException("Credenciais inválidas");
          return new Authentication() 
               {
               public String loginName()  { return "<o_domínio>\\<o_nome_de_usuário>"; }
               public String password() { return "<a_senha>"; }
               };
          }
}

Cada instância do Provedor recebe um objeto Provider.Callback que é utilizado para obter credenciais para qualquer repositório que o cliente acessa por meio dessa instância do Provedor.

O argumento realm é uma cadeia que identifica o contexto para o qual a autenticação está sendo solicitada (por exemplo, uma URL de servidor ou nome de repositório). O formato da cadeia varia de um subprovedor para outro e tende a ser exibido como um mnemônico para o usuário.

O retryCount especifica o número de vezes de tentativas de autenticação do repositório.

Neste exemplo, os argumentos realm e retryCount não são utilizados. Entretanto, os aplicativos clientes devem limitar as tentativas retryCount a um pequeno número porque não há limite predefinido para novas tentativas de autenticação, e um provedor tentará repetidamente obter autenticação após uma falha, a menos que um retryCount seja configurado ou o método getAuthentication emita uma exceção.

Nota: O domínio pode fazer parte de um nome de usuário. Um login do Rational ClearCase requer um domínio como parte do nome do usuário para servidores no Windows®.

Em um aplicativo cliente, o retorno de chamada de autenticação pode abrir uma caixa de diálogo de login para coletar o nome de login e a senha do usuário. O argumento realm pode ser apresentado ao usuário na caixa de diálogo, para mostrar em qual repositório do produto o usuário está efetuando login (por exemplo, uma URL de servidor ou um banco de dados do usuário). Esta opção poderá ser útil se os usuários tiverem diferentes nomes de usuário e senhas para diferentes repositórios do produto.

O Retorno de Chamada é chamado para cada região diferente em que o cliente faz pedidos enquanto está utilizando o Provedor. Consulte as informações de Javadoc para a classe StpProvider para obter detalhes sobre os requisitos no Retorno de Chamada transmitidos para um Provedor do Rational CM API.


Feedback