Criando um Retorno de Chamada

Uma ProviderFactory.Callback é uma interface por meio da qual as credenciais do usuário são representadas a partir do cliente pelo Provedor do ClearQuest CM API, quando necessário para acessar um repositório de produto. Também há uma interface de subprovedor, a StpProvider.StpCallback que é especializada para o ClearQuest.

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. No entanto, os aplicativos clientes devem limitar as tentativas de retryCount a um número pequeno, porque não há limite de novas tentativas de autenticação e um provedor tentará repetidamente obter a autenticação após uma falha, a menos que retryCount esteja configurado ou que o método getAuthentication lance uma exceção.

Em um aplicativo cliente, o retorno de chamada de autenticação pode abrir uma janela de login para coletar o nome e a senha de login de usuário. O argumento realm pode ser apresentado em uma janela para mostrar em qual repositório de produto o usuário efetuou 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 transmitido a um Provedor do ClearQuest CM API.


Feedback