diff --git a/src/main/java/com/corundumstudio/socketio/Configuration.java b/src/main/java/com/corundumstudio/socketio/Configuration.java
index e996cb7..d39e8c8 100644
--- a/src/main/java/com/corundumstudio/socketio/Configuration.java
+++ b/src/main/java/com/corundumstudio/socketio/Configuration.java
@@ -26,6 +26,8 @@ import com.corundumstudio.socketio.protocol.JsonSupport;
import com.corundumstudio.socketio.store.MemoryStoreFactory;
import com.corundumstudio.socketio.store.StoreFactory;
+import javax.net.ssl.KeyManagerFactory;
+
public class Configuration {
private ExceptionListener exceptionListener = new DefaultExceptionListener();
@@ -62,6 +64,8 @@ public class Configuration {
private InputStream trustStore;
private String trustStorePassword;
+ private String keyManagerFactoryAlgorithm = KeyManagerFactory.getDefaultAlgorithm();
+
private boolean preferDirectBuffer = true;
private SocketConfig socketConfig = new SocketConfig();
@@ -88,7 +92,7 @@ public class Configuration {
/**
* Defend from further modifications by cloning
*
- * @param configuration - Configuration object to clone
+ * @param conf - Configuration object to clone
*/
Configuration(Configuration conf) {
setBossThreads(conf.getBossThreads());
@@ -126,6 +130,7 @@ public class Configuration {
setTrustStore(conf.getTrustStore());
setTrustStoreFormat(conf.getTrustStoreFormat());
setTrustStorePassword(conf.getTrustStorePassword());
+ setKeyManagerFactoryAlgorithm(conf.getKeyManagerFactoryAlgorithm());
setTransports(conf.getTransports().toArray(new Transport[conf.getTransports().size()]));
setMaxHttpContentLength(conf.getMaxHttpContentLength());
@@ -202,7 +207,7 @@ public class Configuration {
/**
* Ping interval
*
- * @param value - time in milliseconds
+ * @param heartbeatIntervalSecs - time in milliseconds
*/
public void setPingInterval(int heartbeatIntervalSecs) {
this.pingInterval = heartbeatIntervalSecs;
@@ -215,7 +220,7 @@ public class Configuration {
* Ping timeout
* Use 0
to disable it
*
- * @param value - time in milliseconds
+ * @param heartbeatTimeoutSecs - time in milliseconds
*/
public void setPingTimeout(int heartbeatTimeoutSecs) {
this.pingTimeout = heartbeatTimeoutSecs;
@@ -289,7 +294,7 @@ public class Configuration {
/**
* Set maximum http content length limit
*
- * @param maxContentLength
+ * @param value
* the maximum length of the aggregated http content.
*/
public void setMaxHttpContentLength(int value) {
@@ -351,7 +356,7 @@ public class Configuration {
* Data store - used to store session data and implements distributed pubsub.
* Default is {@code MemoryStoreFactory}
*
- * @param storeFactory - implements StoreFactory
+ * @param clientStoreFactory - implements StoreFactory
*
* @see com.corundumstudio.socketio.store.MemoryStoreFactory
* @see com.corundumstudio.socketio.store.RedissonStoreFactory
@@ -444,6 +449,14 @@ public class Configuration {
this.trustStorePassword = trustStorePassword;
}
+ public String getKeyManagerFactoryAlgorithm() {
+ return keyManagerFactoryAlgorithm;
+ }
+ public void setKeyManagerFactoryAlgorithm(String keyManagerFactoryAlgorithm) {
+ this.keyManagerFactoryAlgorithm = keyManagerFactoryAlgorithm;
+ }
+
+
/**
* Set maximum websocket frame content length limit
*
diff --git a/src/main/java/com/corundumstudio/socketio/SocketIOChannelInitializer.java b/src/main/java/com/corundumstudio/socketio/SocketIOChannelInitializer.java
index 28417b3..988306b 100644
--- a/src/main/java/com/corundumstudio/socketio/SocketIOChannelInitializer.java
+++ b/src/main/java/com/corundumstudio/socketio/SocketIOChannelInitializer.java
@@ -208,7 +208,7 @@ public class SocketIOChannelInitializer extends ChannelInitializer impl
KeyStore ks = KeyStore.getInstance(configuration.getKeyStoreFormat());
ks.load(configuration.getKeyStore(), configuration.getKeyStorePassword().toCharArray());
- KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance(configuration.getKeyManagerFactoryAlgorithm());
kmf.init(ks, configuration.getKeyStorePassword().toCharArray());
SSLContext serverContext = SSLContext.getInstance(configuration.getSSLProtocol());