Class SSLContextFactoryBean
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanClassLoaderAware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.FactoryBean,org.springframework.beans.factory.InitializingBean
FactoryBean implementation
which makes it possible to configure SSLContext
instances using Spring.
If no properties are set the returned SSLContext will
be equivalent to what the following creates:
SSLContext c = SSLContext.getInstance( "TLS" );
c.init( null, null, null );
Use the properties prefixed with keyManagerFactory to control
the creation of the KeyManager to be used.
Use the properties prefixed with trustManagerFactory to control
the creation of the TrustManagerFactory to be used.
-
Field Summary
Fields inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ObjectvoidsetKeyManagerFactory(KeyManagerFactory factory) Sets theKeyManagerFactoryto use.voidsetKeyManagerFactoryAlgorithm(String algorithm) Sets the algorithm to use when creating theKeyManagerFactoryusingKeyManagerFactory.getInstance(java.lang.String)orKeyManagerFactory.getInstance(java.lang.String, java.lang.String).voidsetKeyManagerFactoryAlgorithmUseDefault(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.voidsetKeyManagerFactoryKeyStore(KeyStore keyStore) Sets theKeyStorewhich will be used in the call toKeyManagerFactory.init(java.security.KeyStore, char[])when theSSLContextis created.voidsetKeyManagerFactoryKeyStorePassword(String password) Sets the password which will be used in the call toKeyManagerFactory.init(java.security.KeyStore, char[])when theSSLContextis created.voidsetKeyManagerFactoryProvider(String provider) Sets the provider to use when creating theKeyManagerFactoryusingKeyManagerFactory.getInstance(java.lang.String, java.lang.String).voidsetProtocol(String protocol) Sets the protocol to use when creating theSSLContext.voidsetSecureRandom(SecureRandom secureRandom) Sets theSecureRandomto use when initializing theSSLContext.voidSets theTrustManagerFactoryto use.voidsetTrustManagerFactoryAlgorithm(String algorithm) Sets the algorithm to use when creating theTrustManagerFactoryusingTrustManagerFactory.getInstance(java.lang.String)orTrustManagerFactory.getInstance(java.lang.String, java.lang.String).voidsetTrustManagerFactoryAlgorithmUseDefault(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.voidsetTrustManagerFactoryKeyStore(KeyStore keyStore) Sets theKeyStorewhich will be used in the call toTrustManagerFactory.init(java.security.KeyStore)when theSSLContextis created.voidSets theManagerFactoryParameterswhich will be used in the call toTrustManagerFactory.init(javax.net.ssl.ManagerFactoryParameters)when theSSLContextis created.voidsetTrustManagerFactoryProvider(String provider) Sets the provider to use when creating theTrustManagerFactoryusingTrustManagerFactory.getInstance(java.lang.String, java.lang.String).Methods inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
afterPropertiesSet, destroy, destroyInstance, getBeanFactory, getBeanTypeConverter, getEarlySingletonInterfaces, getObject, isSingleton, setBeanClassLoader, setBeanFactory, setSingleton
-
Constructor Details
-
SSLContextFactoryBean
public SSLContextFactoryBean()
-
-
Method Details
-
createInstance
- Specified by:
createInstancein classorg.springframework.beans.factory.config.AbstractFactoryBean- Throws:
Exception
-
getObjectType
- Specified by:
getObjectTypein interfaceorg.springframework.beans.factory.FactoryBean- Specified by:
getObjectTypein classorg.springframework.beans.factory.config.AbstractFactoryBean
-
setProtocol
Sets the protocol to use when creating theSSLContext. The default isTLS.- Parameters:
protocol- the name of the protocol.- Throws:
IllegalArgumentException- if the specified value isnull.
-
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.- 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.- Parameters:
useDefault-trueorfalse.
-
setKeyManagerFactory
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
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
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
Sets theKeyStorewhich will be used in the call toKeyManagerFactory.init(java.security.KeyStore, char[])when theSSLContextis created.- Parameters:
keyStore- the key store.
-
setKeyManagerFactoryKeyStorePassword
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
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
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
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
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
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
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:
-