代码集成

更新时间:
复制为 MD 格式

本文档介绍如何在代码中集成 IDaaS SDK,获取 M2M 客户端令牌。

适用范围

已完成环境准备工作,相关配置参见环境准备

SDK 初始化

读取用户在环境准备阶段指定的配置文件,完成 IDaaS 配置的初始化。

IDaaSCredentialProviderFactory.init();
重要
  • SDK 功能均依赖 init() 初始化方法,因此 init() 初始化方法必须先完成,否则获取 IDaaSCredentialProvider 等均会报错,导致业务中断。

  • 初始化会检查配置并获取访问配置文件中指定的 scope 的 Access Token,若配置缺失或配置错误导致获取 Access Token 失败,会直接报错,导致业务中断。

获取 Access Token

  1. 获取 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);
  2. 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);
  }
}