Class SslContextFactory
- java.lang.Object
-
- org.apache.mina.filter.ssl.SslContextFactory
-
public class SslContextFactory extends Object
A factory that creates and configures a newSSLContext.If no properties are set the returned
SSLContextwill be equivalent to what the following creates:SSLContext c = SSLContext.getInstance("TLSv1.2"); c.init(null, null, null);Use the properties prefixed with
keyManagerFactoryto control the creation of theKeyManagerto be used.Use the properties prefixed with
trustManagerFactoryto control the creation of theTrustManagerFactoryto be used.- Author:
- Apache MINA Project
-
-
Constructor Summary
Constructors Constructor Description SslContextFactory()
-
Method Summary
-
-
-
Method Detail
-
newInstance
public SSLContext newInstance() throws Exception
Create a new SSLContext instance,using theKeyManagerFactoryand theTrustManagerFactory.- Returns:
- The created instance
- Throws:
Exception- If we weren't able to create the SSLContext insyance
-
setProvider
public void setProvider(String provider)
Sets the provider of the newSSLContext. The default value isnull, which means the default provider will be used.- Parameters:
provider- the name of theSSLContextprovider
-
setProtocol
public void setProtocol(String protocol)
Sets the protocol to use when creating theSSLContext. The default isTLS.- Parameters:
protocol- the name of the protocol.
-
setKeyManagerFactoryAlgorithmUseDefault
public void setKeyManagerFactoryAlgorithmUseDefault(boolean useDefault)
If this is set totruewhile noKeyManagerFactoryhas been set usingsetKeyManagerFactory(KeyManagerFactory)and no algorithm has been set usingsetKeyManagerFactoryAlgorithm(String)the default algorithm return byKeyManagerFactory.getDefaultAlgorithm()will be used. The default value of this property istrue.- Parameters:
useDefault-trueorfalse.
-
setTrustManagerFactoryAlgorithmUseDefault
public void setTrustManagerFactoryAlgorithmUseDefault(boolean useDefault)
If this is set totruewhile noTrustManagerFactoryhas been set usingsetTrustManagerFactory(TrustManagerFactory)and no algorithm has been set usingsetTrustManagerFactoryAlgorithm(String)the default algorithm return byTrustManagerFactory.getDefaultAlgorithm()will be used. The default value of this property istrue.- Parameters:
useDefault-trueorfalse.
-
setKeyManagerFactory
public void setKeyManagerFactory(KeyManagerFactory factory)
Sets theKeyManagerFactoryto use. If this is set the properties which are used by this factory bean to create aKeyManagerFactorywill all be ignored.- Parameters:
factory- the factory.
-
setKeyManagerFactoryAlgorithm
public void setKeyManagerFactoryAlgorithm(String algorithm)
Sets the algorithm to use when creating theKeyManagerFactoryusingKeyManagerFactory.getInstance(java.lang.String)orKeyManagerFactory.getInstance(java.lang.String, java.lang.String).This property will be ignored if a
KeyManagerFactoryhas been set directly usingsetKeyManagerFactory(KeyManagerFactory).If this property isn't set while no
KeyManagerFactoryhas been set usingsetKeyManagerFactory(KeyManagerFactory)andsetKeyManagerFactoryAlgorithmUseDefault(boolean)has been set totruethe value returned byKeyManagerFactory.getDefaultAlgorithm()will be used instead.- Parameters:
algorithm- the algorithm to use.
-
setKeyManagerFactoryProvider
public void setKeyManagerFactoryProvider(String provider)
Sets the provider to use when creating theKeyManagerFactoryusingKeyManagerFactory.getInstance(java.lang.String, java.lang.String).This property will be ignored if a
KeyManagerFactoryhas been set directly usingsetKeyManagerFactory(KeyManagerFactory).If this property isn't set and no
KeyManagerFactoryhas been set usingsetKeyManagerFactory(KeyManagerFactory)KeyManagerFactory.getInstance(java.lang.String)will be used to create theKeyManagerFactory.- Parameters:
provider- the name of the provider.
-
setKeyManagerFactoryKeyStore
public void setKeyManagerFactoryKeyStore(KeyStore keyStore)
Sets theKeyStorewhich will be used in the call toKeyManagerFactory.init(java.security.KeyStore, char[])when theSSLContextis created.- Parameters:
keyStore- the key store.
-
setKeyManagerFactoryKeyStorePassword
public void setKeyManagerFactoryKeyStorePassword(String password)
Sets the password which will be used in the call toKeyManagerFactory.init(java.security.KeyStore, char[])when theSSLContextis created.- Parameters:
password- the password. Usenullto disable password.
-
setTrustManagerFactory
public void setTrustManagerFactory(TrustManagerFactory factory)
Sets theTrustManagerFactoryto use. If this is set the properties which are used by this factory bean to create aTrustManagerFactorywill all be ignored.- Parameters:
factory- the factory.
-
setTrustManagerFactoryAlgorithm
public void setTrustManagerFactoryAlgorithm(String algorithm)
Sets the algorithm to use when creating theTrustManagerFactoryusingTrustManagerFactory.getInstance(java.lang.String)orTrustManagerFactory.getInstance(java.lang.String, java.lang.String).This property will be ignored if a
TrustManagerFactoryhas been set directly usingsetTrustManagerFactory(TrustManagerFactory).If this property isn't set while no
TrustManagerFactoryhas been set usingsetTrustManagerFactory(TrustManagerFactory)andsetTrustManagerFactoryAlgorithmUseDefault(boolean)has been set totruethe value returned byTrustManagerFactory.getDefaultAlgorithm()will be used instead.- Parameters:
algorithm- the algorithm to use.
-
setTrustManagerFactoryKeyStore
public void setTrustManagerFactoryKeyStore(KeyStore keyStore)
Sets theKeyStorewhich will be used in the call toTrustManagerFactory.init(java.security.KeyStore)when theSSLContextis created.This property will be ignored if
ManagerFactoryParametershas been set directly usingsetTrustManagerFactoryParameters(ManagerFactoryParameters).- Parameters:
keyStore- the key store.
-
setTrustManagerFactoryParameters
public void setTrustManagerFactoryParameters(ManagerFactoryParameters parameters)
Sets theManagerFactoryParameterswhich will be used in the call toTrustManagerFactory.init(javax.net.ssl.ManagerFactoryParameters)when theSSLContextis created.- Parameters:
parameters- describing provider-specific trust material.
-
setTrustManagerFactoryProvider
public void setTrustManagerFactoryProvider(String provider)
Sets the provider to use when creating theTrustManagerFactoryusingTrustManagerFactory.getInstance(java.lang.String, java.lang.String).This property will be ignored if a
TrustManagerFactoryhas been set directly usingsetTrustManagerFactory(TrustManagerFactory).If this property isn't set and no
TrustManagerFactoryhas been set usingsetTrustManagerFactory(TrustManagerFactory)TrustManagerFactory.getInstance(java.lang.String)will be used to create theTrustManagerFactory.- Parameters:
provider- the name of the provider.
-
setSecureRandom
public void setSecureRandom(SecureRandom secureRandom)
Sets theSecureRandomto use when initializing theSSLContext. The JVM's default will be used if this isn't set.- Parameters:
secureRandom- theSecureRandomornullif the JVM's default should be used.- See Also:
SSLContext.init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom)
-
setClientSessionCacheSize
public void setClientSessionCacheSize(int size)
Sets the SSLSession cache size for theSSLSessionContextfor use in client mode.- Parameters:
size- the new session cache size limit; zero means there is no limit.- See Also:
SSLSessionContext.setSessionCacheSize(int size)
-
setClientSessionTimeout
public void setClientSessionTimeout(int seconds)
Set the SSLSession timeout limit for theSSLSessionContextfor use in client mode.- Parameters:
seconds- the new session timeout limit in seconds; zero means there is no limit.- See Also:
SSLSessionContext.setSessionTimeout(int seconds)
-
setServerSessionCacheSize
public void setServerSessionCacheSize(int serverSessionCacheSize)
Sets the SSLSession cache size for theSSLSessionContextfor use in server mode.- Parameters:
serverSessionCacheSize- the new session cache size limit; zero means there is no limit.- See Also:
SSLSessionContext.setSessionCacheSize(int)
-
setServerSessionTimeout
public void setServerSessionTimeout(int serverSessionTimeout)
Set the SSLSession timeout limit for theSSLSessionContextfor use in server mode.- Parameters:
serverSessionTimeout- the new session timeout limit in seconds; zero means there is no limit.- See Also:
SSLSessionContext.setSessionTimeout(int)
-
-