JAVA-SDK
更新时间:2019-08-15
概述
本文档主要介绍证书管理模块Java SDK的安装和使用。
安装SDK工具包
运行环境
Java SDK工具包可在jdk1.8以上的环境下运行。
方式一:使用Maven安装
在Maven的pom.xml文件中添加bce-java-sdk的依赖:
<dependency>
<groupId>com.baidubce</groupId>
<artifactId>bce-java-sdk</artifactId>
<version>{version}</version>
</dependency>
其中,{version}
为版本号,可以在SDK下载页面找到。
方式二:直接使用JAR包安装
- 在官方网站下载Java SDK压缩工具包。
- 将下载的
bce-java-sdk-version.zip
解压后,复制到工程文件夹中。 - 在Eclipse右键“工程 -> Properties -> Java Build Path -> Add JARs”。
- 添加SDK工具包
lib/bce-java-sdk-{version}.jar
和第三方依赖工具包third-party/*.jar
。 其中,version
为版本号。
SDK目录结构
com.baidubce
├── auth //BCE签名相关类
├── http //BCE的Http通信相关类
├── internal //SDK内部类
├── model //BCE公用model类
├── services
│ └── cert //证书管理服务相关类
│ ├── model //证书管理服务内部model,如Request或Response
│ └── CertClient.class //证书管理服务客户端入口类
├── util //BCE公用工具类
├── BceClientConfiguration.class //对BCE的HttpClient的配置
├── BceClientException.class //BCE客户端的异常类
├── BceServiceException.class //与BCE服务端交互后的异常类
├── ErrorCode.class //BCE通用的错误码
└── Region.class //BCE提供服务的区域
创建CertClient(必做)
用户可以参考如下代码新建一个CertClient,需要传入aksk和endpoint(证书服务的url)
String endpoint = "https://certificate.baidubce.com"; // 服务url
String accessKey = "your-access-key-id"; // 用户ak
String secretKey = "your-secret-access-key"; // 用户sk
CertClient certClient = CertClient.createCertClient(accessKey, secretKey, endpoint);
方法列表
1.创建证书
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
certName | String | 必须 | 证书的名称。长度限制为1-65个字符,以字母开头,只允许包含字母、数字、’-‘、’/’、’.’、’’,Java正则表达式 ^[a-zA-Z]a-zA-Z0-9\-/\.]{2,64}$ |
certServerData | String | 必须 | 服务器证书的数据内容 (Base64编码) |
certPrivateData | String | 可须 | 证书的私钥数据内容 (Base64编码),证书类型为1时必填 |
certLinkData | String | 可选 | 证书链数据内容 (Base64编码) |
certType | Integer | 可选 | 证书类型,1表示服务端证书,2表示客户端证书,默认为1 |
返回值:CertCreateResponse
属性名 | 属性类型 | 说明 |
---|---|---|
certId | String | 证书id |
certName | String | 证书名 |
参考代码
// 准备参数
String certName = "Your-certificate-name";
String certServerData = "Your-certificate-server-data";
String certPrivateData = "Your-certificate-private-data";
String certLinkData = "Your-certificate ";
// 构造请求
CertCreateRequest request = new CertCreateRequest();
request.setCertName(certName);
request.setCertPrivateData(certPrivateData);
request.setCertServerData(certServerData);
request.setCertLinkData(certLinkData);
// 发出请求,获取结果
CertCreateResponse createResponse = certClient.createCert(request);
可能异常
异常code | 说明 |
---|---|
CertExceedLimit (409) | 超过用户最大证书数 |
UnmatchedPairParameterInvalidException (400) | 证书有效时间不包含当前时间 |
PrivateKeyParameterInvalid (400) | 私钥解析异常 |
CertificateParameterInvalid (400) | 证书解析异常 |
CertChainParameterInvalid (400) | 证书链解析异常 |
UnmatchedPairParameterInvalid (400) | 公钥私钥不匹配 |
2.获取证书列表
请求参数:无
返回值:CertCreateResponse
属性名 | 属性类型 | 说明 |
---|---|---|
certs | List<CertificateMeta> | 证书信息的列表 |
CertificateMeta
属性名 | 属性类型 | 说明 |
---|---|---|
certId | String | 证书ID |
certName | String | 证书名称 |
certCommonName | String | 证书通用名称 |
certStartTime | DateTime | 证书生效时间 |
certStopTime | DateTime | 证书到期时间 |
certCreateTime | DateTime | 证书创建时间 |
certUpdateTime | DateTime | 证书更新时间 |
参考代码
// 发出请求,获取结果
CertListResponse listResponse = certClient.listUserCerts();
3.获取单个证书的信息(不包含证书公钥私钥信息)
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
certId | String | 必须 | 证书id |
返回值:CertificateMeta
属性名 | 属性类型 | 说明 |
---|---|---|
certId | String | 证书ID |
certName | String | 证书名称 |
certCommonName | String | 证书通用名称 |
certStartTime | DateTime | 证书生效时间 |
certStopTime | DateTime | 证书到期时间 |
certCreateTime | DateTime | 证书创建时间 |
certUpdateTime | DateTime | 证书更新时间 |
参考代码
// 准备参数
String certId = "Your-cert-id";
// 发出请求,获取结果
CertificateMeta certificateMeta = certClient.getCertInfo(certId);
4.重命名证书
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
certName | String | 必须 | 证书的名称。长度限制为1-65个字符,以字母开头,只允许包含字母、数字、’-‘、’/’、’.’、’’,Java正则表达式 ^[a-zA-Z]a-zA-Z0-9\-/\.]{2,64}$ |
certId | String | 必须 | 证书id |
返回值:CertInServiceListResponse
属性名 | 属性类型 | 说明 |
---|---|---|
certId | String | 证书id |
certName | String | 证书名 |
参考代码
// 准备参数
String certId = "Your-cert-id";
String newName = "Cert-new-name";
// 发出请求
certClient.updateCertName(certId, newName);
可能异常
异常code | 说明 |
---|---|
AccessDeniedException(403) | 无权限访问 |
ResourceNotFoundException(404) | 证书不存在 |
5.删除证书
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
certId | String | 必须 | 证书id |
返回值:无
参考代码
// 准备参数
String certId = "Your-cert-id";
// 发出请求
certClient.delete(certId);
可能异常
异常code | 说明 |
---|---|
OperationNotAllowedException(409) | 证书使用中 |
AccessDeniedException(403) | 无权限访问 |
ResourceNotFoundException(404) | 证书不存在 |
6.替换证书(证书id不变)
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
certId | String | 必须 | 证书id |
certName | String | 必须 | 证书的名称。长度限制为1-65个字符,以字母开头,只允许包含字母、数字、’-‘、’/’、’.’、’’,Java正则表达式 ^[a-zA-Z]a-zA-Z0-9\-/\.]{2,64}$ |
certServerData | String | 必须 | 服务器证书的数据内容 (Base64编码) |
certPrivateData | String | 可须 | 证书的私钥数据内容 (Base64编码),证书类型为1时必填 |
certLinkData | String | 可选 | 证书链数据内容 (Base64编码) |
certType | Integer | 可选 | 证书类型,1表示服务端证书,2表示客户端证书,默认为1 |
返回值:无
参考代码
// 准备参数
String certId = "Your-certificate-id";
String certName = "Your-certificate-name";
String certServerData = "Your-certificate-server-data";
String certPrivateData = "Your-certificate-private-data";
String certLinkData = "Your-certificate ";
// 构造请求
CertCreateRequest request = new CertCreateRequest();
request.setCertName(certName);
request.setCertPrivateData(certPrivateData);
request.setCertServerData(certServerData);
request.setCertLinkData(certLinkData);
// 发出请求
certClient.replaceCertData(certId, request);
可能异常
异常code | 说明 |
---|---|
OperationNotAllowedException(409) | 证书使用中 |
AccessDeniedException(403) | 无权限访问 |
ResourceNotFoundException(404) | 证书不存在 |
UnmatchedPairParameterInvalidException (400) | 证书有效时间不包含当前时间 |
PrivateKeyParameterInvalid (400) | 私钥解析异常 |
CertificateParameterInvalid (400) | 证书解析异常 |
CertChainParameterInvalid (400) | 证书链解析异常 |
UnmatchedPairParameterInvalid (400) | 公钥私钥不匹配 |
版本说明
v1.0.0
首次发布。