本文檔介紹如何在代碼中整合 IDaaS SDK,擷取 M2M 用戶端令牌。
適用範圍
已完成環境準備工作,相關配置參見環境準備。
SDK 初始化
讀取使用者在環境準備階段指定的設定檔,完成 IDaaS 配置的初始化。
IDaaSCredentialProviderFactory.init();重要
SDK 功能均依賴 init() 初始化方法,因此 init() 初始化方法必須先完成,否則擷取 IDaaSCredentialProvider 等均會報錯,導致業務中斷。
初始化會檢查配置並擷取訪問設定檔中指定的 scope 的 Access Token,若配置缺失或配置錯誤導致擷取 Access Token 失敗,會直接報錯,導致業務中斷。
擷取 Access Token
擷取 IDaaS credentialProvider,用於擷取 Access Token。
通過無參構造方法擷取 IDaaS credentialProvider,擷取訪問設定檔中指定的 scope 的 Access Token。
IDaaSCredentialProvider credentialProvider = IDaaSCredentialProviderFactory.getIDaaSCredentialProvider();通過有參構造方法擷取 IDaaS credentialProvider,scope 可自行指定,擷取訪問指定的 scope 的 Access Token。格式為
受眾標識|許可權標識,對應所要訪問的 M2M 服務端應用的受眾標識和許可權標識。IDaaSCredentialProvider credentialProvider = IDaaSCredentialProviderFactory.getIDaaSCredentialProvider(scope);
Access Token 是 Bearer 類型,通過 credentialProvider 的 getBearerToken() 方法擷取。
String accessToken = credentialProvider.getBearerToken();
程式碼範例
import com.cloud_idaas.core.factory.IDaaSCredentialProviderFactory;
import com.cloud_idaas.core.provider.IDaaSCredentialProvider;
public class sample {
public static void main(String[] args) {
// 通過設定檔初始化 IDaaS 的配置
IDaaSCredentialProviderFactory.init();
// 無參構造方法擷取 IDaaS credentialProvider,擷取訪問設定檔中指定的 scope 的 Access Token
IDaaSCredentialProvider credentialProvider = IDaaSCredentialProviderFactory.getIDaaSCredentialProvider();
String accessToken = credentialProvider.getBearerToken();
// 有參構造方法擷取 IDaaS credentialProvider,擷取訪問自行指定的 scope 的 Access Token
// String scope = "api.example.com|read:file";
// IDaaSCredentialProvider anotherCredentialProvider = IDaaSCredentialProviderFactory.getIDaaSCredentialProvider(scope);
// String accessToken = anotherCredentialProvider.getBearerToken();
System.out.println(accessToken);
}
}