本文档介绍如何在代码中集成 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);
}
}该文章对您有帮助吗?