更新时间:2022-02-21 GMT+08:00
初始化及证书配置
新建一个NorthApiClient实例,设置好ClientInfo(包括平台IP、端口、appId和密码),再初始化证书。
- 平台IP、端口、appId和密码都是从配置文件./src/main/resources/application.properties中读取的,因此,当这些信息发生变化时,只要修改配置文件,不用修改应用服务器的代码。
- 本章节所指的证书是平台提供的,在调用平台接口过程中使用;一般情况下,与回调使用的证书不一样。
使用测试证书
如果使用测试证书:
1 2 3 4 5 6 7 8 9 10 11 12 |
NorthApiClient northApiClient = new NorthApiClient();
PropertyUtil.init("./src/main/resources/application.properties");
ClientInfo clientInfo = new ClientInfo();
clientInfo.setPlatformIp(PropertyUtil.getProperty("platformIp"));
clientInfo.setPlatformPort(PropertyUtil.getProperty("platformPort"));
clientInfo.setAppId(PropertyUtil.getProperty("appId"));
clientInfo.setSecret(PropertyUtil.getProperty("secret"));
northApiClient.setClientInfo(clientInfo);
northApiClient.initSSLConfig();//默认使用测试证书,且不进行主机名校验
|
使用指定证书
如果不使用测试证书,可使用指定证书(如商用证书):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
NorthApiClient northApiClient = new NorthApiClient();
PropertyUtil.init("./src/main/resources/application.properties");
ClientInfo clientInfo = new ClientInfo();
clientInfo.setPlatformIp(PropertyUtil.getProperty("platformIp"));
clientInfo.setPlatformPort(PropertyUtil.getProperty("platformPort"));
clientInfo.setAppId(PropertyUtil.getProperty("appId"));
clientInfo.setSecret(getAesPropertyValue("secret"));
SSLConfig sslConfig= new SSLConfig();
sslConfig.setTrustCAPath(PropertyUtil.getProperty("newCaFile"));
slConfig.setTrustCAPwd(getAesPropertyValue("newCaPassword"));
slConfig.setSelfCertPath(PropertyUtil.getProperty("newClientCertFile"));
slConfig.setSelfCertPwd(getAesPropertyValue("newClientCertPassword"));
northApiClient.setClientInfo(clientInfo);
northApiClient.initSSLConfig(sslconfig); //使用指定的证书,且默认使用严格主机名校验
|
使用指定证书时,如果不使用严格主机名校验,在调用northApiClient.initSSLConfig(sslconfig)之前可以自行设置主机名校验方法:
1 2 3 4 5 6 7 |
northApiClient.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String arg0, SSLSession arg1) {
// 自定义主机名校验
……
return true;
}
});
|
主机名校验方法应以安全为原则,不应该直接返回true。
父主题: JAVA SDK使用指南