iOS推送javaPNS源码解析四,证书管理类
来源:互联网 发布:linux mmap使用 编辑:程序博客网 时间:2024/05/22 13:47
证书管理类KeystoreManager
顾名思义该类用来管理推送证书的,主要作用是解析证书到适合的格式,比如InputStream流。
private static final String REVIEW_MESSAGE = ” Please review the procedure for generating a keystore for JavaPNS.”;验证证书错误提示语句
static KeyStore loadKeystore(AppleServer server) throws KeystoreException { 通过服务器获取证书对象
return loadKeystore(server, server.getKeystoreStream());
}
static KeyStore loadKeystore(AppleServer server, Object keystore) throws KeystoreException {
return loadKeystore(server, keystore, false);通过服务器和证书对象获取证书对象
}
上边两个方法的具体实现
public static KeyStore loadKeystore(AppleServer server, Object keystore, boolean verifyKeystore) throws KeystoreException {
//如果已经是keyStore,那么直接返回
if (keystore instanceof KeyStore) {
return (KeyStore) keystore;
}
//锁定服务器,好处此服务器不会被其他线程篡改
synchronized (server) {
//将KeyStore转化为InputStream
InputStream keystoreStream = streamKeystore(keystore);
if (keystoreStream instanceof WrappedKeystore) {
return ((WrappedKeystore) keystoreStream).getKeystore();
}
KeyStore keyStore;
try {
keyStore = KeyStore.getInstance(server.getKeystoreType());//根据服务器证书类型新建keyStore
char[] password = KeystoreManager.getKeystorePasswordForSSL(server);
keyStore.load(keystoreStream, password);//加载keyStore
} catch (Exception e) {
throw wrapKeystoreException(e);
} finally {
try {
keystoreStream.close();
} catch (Exception e) {}
}
return keyStore;
}
}
static Object ensureReusableKeystore(AppleServer server, Object keystore) throws KeystoreException,该方法表示证书是否能够重复使用
public static void verifyKeystoreContent(AppleServer server, Object keystore) throws KeystoreException ,加载证书内容并校验是否为苹果服务器证书
public static void verifyKeystoreContent(KeyStore keystore) throws KeystoreException,解析证书信息,判断是否为苹果证书
static char[] getKeystorePasswordForSSL(AppleServer server)获取服务器中证书密码
static KeystoreException wrapKeystoreException(Exception e) 装饰keyStore异常信息。
static InputStream streamKeystore(Object keystore) throws InvalidKeystoreReferenceException,获取InputStream格式的证书格式
public static void validateKeystoreParameter(Object keystore) throws InvalidKeystoreReferenceException,校验传入的证书参数是否有效
- iOS推送javaPNS源码解析四,证书管理类
- iOS推送javaPNS源码解析五,代理管理类
- iOS推送javaPNS源码解析六,连接管理类
- iOS推送javaPNS源码解析七,推送信息类
- iOS推送javaPNS源码解析八,多线程推送类
- iOS推送javaPNS源码解析一,设备类
- iOS推送javaPNS源码解析二,消息体类
- iOS推送javaPNS源码解析三,服务器类
- iOS推送javaPNS源码解析九,总结
- javapns 推送ios消息
- javapns实现apple ios推送
- 利用javapns对IOS进行推送
- ios消息推送全面解析和push证书的生成
- ios消息推送全面解析和push证书的生成
- iOS 推送,服务器。证书。
- IOS 推送证书合并
- ios推送证书实现
- iOS 制作推送证书
- Android自定义View画圆+进度条+自定义View梯形
- Qt5与https
- 第十五天总结
- Retrofit结合rxjava使用
- Mvp使用
- iOS推送javaPNS源码解析四,证书管理类
- leetcode---longest-substring-without-repeating-characters---字符串
- linux——线程
- HTML5动画和鼠标移动
- TCP/IP 关于一些在应用层的协议
- 先码后看 Tomcat是怎么启动的?——Bootstrap引导 侵立删
- ThreeQieHuan
- -lrt问题,即:shm_open的头文件存在,编译却不通过,提示undefined
- 数据结构笔记(一)线性表的顺序表示和基本操作及其顺序表实现的集合运算(A-B)U(B-A)实例