콜백 작성

ProviderFactory.Callback은 제품 저장소에 액세스하는 데 필요한 경우 ClearQuest® CM API 제공자가 클라이언트로부터 사용자 신임 정보를 요청하는 인터페이스입니다. ClearQuest에만 있는 하위 제공자 인터페이스 StpProvider.StpCallback도 있습니다.

다음 MyCallback() 클래스는 사용자 인증 정보(도메인, 사용자 로그인 이름 및 비밀번호)를 작성하여 제공자에게 리턴합니다.

// Callback class, needed to create a provider. 
private static class MyCallback implements Callback 
{
     // Get a WVCM Authentication object.
     // This implementation of the authentication
     // callback returns the specified username and password.

     // The Provider calls getAuthentication to authenticate the current user.
     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>"; }
               };
          }
}

각 제공자 인스턴스는 제공자 인스턴스를 통해 클라이언트가 액세스하는 저장소의 신임을 얻는 데 사용되는 하나의 Provider.Callback 오브젝트에 제공됩니다.

realm 인수는 인증을 요청 중인 컨텍스트를 식별하는 문자열입니다(예: 서버 URL 또는 저장소 이름). 문자열 형식은 하위 제공자마다 다르며 사용자를 니모닉으로 표시하는 데 사용됩니다.

retryCount는 저장소에 대한 인증 시도 횟수를 지정합니다.

이 예제에서는 realmretryCount 인수를 사용하지 않습니다. 그러나 인증 재시도 횟수에 대한 제한이 사전 설정되어 있지 않고 retryCount가 설정되지 않았거나 getAuthentication 메소드에 예외가 발생하지 않은 경우 제공자가 실패 후 반복해서 인증을 얻기 위해 시도할 것이므로 클라이언트 애플리케이션에서 retryCount 시도를 작은 수로 제한해야 합니다.

클라이언트 애플리케이션에서 인증 콜백은 로그인 창을 열어서 사용자의 로그인 이름 및 비밀번호를 수집할 수 있습니다. 사용자가 로그인 중인 제품 저장소(예: 서버 URL 또는 사용자 데이터베이스)를 표시하는 창에서 realm 인수를 표시할 수 있습니다. 이 옵션은 제품 저장소마다 사용자 이름과 암호가 다른 경우 유용합니다.

제공자를 사용하는 동안 클라이언트가 요청하는 각 상이한 범주에 대해 콜백을 호출합니다. ClearQuest CM API 제공자에게 전달되는 콜백 요구사항에 대한 자세한 정보는 StpProvider 클래스에 대한 Javadoc 정보를 참조하십시오.


피드백