建立回呼

ProviderFactory.Callback 是一個介面,當存取產品儲存庫需要使用者認證時,ClearQuest® CM API 提供者會透過該介面從用戶端要求使用者認證。另有一個針對 ClearQuest 所量身訂做的子提供者介面,就是 StpProvider.StpCallback

下列 MyCallback() 類別會建立使用者鑑別資訊(網域、使用者登入名稱和密碼),然後傳回給提供者。

// 建立提供者所需的「回呼」類別。專用 static 類別 MyCallback 實作「回呼」
{
     // 取得一個「WVCM 鑑別」物件。     // 這個鑑別的實作
     // 回呼傳回指定的使用者名稱和密碼。
     //「提供者」呼叫 getAuthentication 來鑑別現行使用者。     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 嘗試限制為較少次數,因為鑑別重試沒有限制次數,提供者在失敗之後會不斷地嘗試取得鑑別,除非設定 retryCount,或直到 getAuthentication 方法擲出異常狀況為止。

在用戶端應用程式中,鑑別回呼可以開啟一個登入視窗,以收集使用者登入名稱和密碼。realm 引數可以在視窗中呈現,以顯示使用者要登入哪一個產品儲存庫(例如:伺服器 URL 或使用者資料庫)。如果使用者對不同的產品儲存庫有不同的使用者名稱和密碼,這個選項會很有用。

在使用「提供者」時,用戶端對其發出要求的每一個不同的網域範圍都會呼叫「回呼」。請參閱 Javadoc 資訊的 StpProvider 類別,以瞭解關於傳給「ClearQuest CM API 提供者」的「回呼」需求詳細資訊。


意見