package com.easysocket.config; import javax.net.ssl.KeyManager; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; /** * socket的ssl配置 */ public class SocketSSLConfig { /** * 安全协议名称(缺省为SSL) */ private String mProtocol; /** * 信任证书管理器(缺省为X509) */ private TrustManager[] mTrustManagers; /** * 证书秘钥管理器(缺省为null) */ private KeyManager[] mKeyManagers; /** * 自定义SSLFactory(缺省为null) */ private SSLSocketFactory mCustomSSLFactory; private SocketSSLConfig() { } public static class Builder { private SocketSSLConfig mConfig; public Builder() { mConfig = new SocketSSLConfig(); } public Builder setProtocol(String protocol) { mConfig.mProtocol = protocol; return this; } public Builder setTrustManagers(TrustManager[] trustManagers) { mConfig.mTrustManagers = trustManagers; return this; } public Builder setKeyManagers(KeyManager[] keyManagers) { mConfig.mKeyManagers = keyManagers; return this; } public Builder setCustomSSLFactory(SSLSocketFactory customSSLFactory) { mConfig.mCustomSSLFactory = customSSLFactory; return this; } public SocketSSLConfig build() { return mConfig; } } public KeyManager[] getKeyManagers() { return mKeyManagers; } public String getProtocol() { return mProtocol; } public TrustManager[] getTrustManagers() { return mTrustManagers; } public SSLSocketFactory getCustomSSLFactory() { return mCustomSSLFactory; } }