public class SSLContextFactoryBean
extends AbstractFactoryBean
org.springframework.beans.factory.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.
构造器和说明 |
---|
SSLContextFactoryBean() |
限定符和类型 | 方法和说明 |
---|---|
protected java.lang.Object |
createInstance() |
java.lang.Class |
getObjectType() |
void |
setKeyManagerFactory(javax.net.ssl.KeyManagerFactory factory)
Sets the
KeyManagerFactory to use. |
void |
setKeyManagerFactoryAlgorithm(java.lang.String algorithm)
Sets the algorithm to use when creating the
KeyManagerFactory
using KeyManagerFactory.getInstance(java.lang.String) or
KeyManagerFactory.getInstance(java.lang.String, java.lang.String) . |
void |
setKeyManagerFactoryAlgorithmUseDefault(boolean useDefault)
If this is set to
true while no KeyManagerFactory
has been set using setKeyManagerFactory(KeyManagerFactory) and
no algorithm has been set using
setKeyManagerFactoryAlgorithm(String) the default algorithm
return by KeyManagerFactory.getDefaultAlgorithm() will be used. |
void |
setKeyManagerFactoryKeyStore(java.security.KeyStore keyStore)
Sets the
KeyStore which will be used in the call to
KeyManagerFactory.init(java.security.KeyStore, char[]) when
the SSLContext is created. |
void |
setKeyManagerFactoryKeyStorePassword(java.lang.String password)
Sets the password which will be used in the call to
KeyManagerFactory.init(java.security.KeyStore, char[]) when
the SSLContext is created. |
void |
setKeyManagerFactoryProvider(java.lang.String provider)
Sets the provider to use when creating the
KeyManagerFactory
using
KeyManagerFactory.getInstance(java.lang.String, java.lang.String) . |
void |
setProtocol(java.lang.String protocol)
Sets the protocol to use when creating the
SSLContext . |
void |
setSecureRandom(java.security.SecureRandom secureRandom)
Sets the
SecureRandom to use when initializing the
SSLContext . |
void |
setTrustManagerFactory(javax.net.ssl.TrustManagerFactory factory)
Sets the
TrustManagerFactory to use. |
void |
setTrustManagerFactoryAlgorithm(java.lang.String algorithm)
Sets the algorithm to use when creating the
TrustManagerFactory
using TrustManagerFactory.getInstance(java.lang.String) or
TrustManagerFactory.getInstance(java.lang.String, java.lang.String) . |
void |
setTrustManagerFactoryAlgorithmUseDefault(boolean useDefault)
If this is set to
true while no TrustManagerFactory
has been set using setTrustManagerFactory(TrustManagerFactory) and
no algorithm has been set using
setTrustManagerFactoryAlgorithm(String) the default algorithm
return by TrustManagerFactory.getDefaultAlgorithm() will be used. |
void |
setTrustManagerFactoryKeyStore(java.security.KeyStore keyStore)
Sets the
KeyStore which will be used in the call to
TrustManagerFactory.init(java.security.KeyStore) when
the SSLContext is created. |
void |
setTrustManagerFactoryParameters(javax.net.ssl.ManagerFactoryParameters parameters)
Sets the
ManagerFactoryParameters which will be used in the call to
TrustManagerFactory.init(javax.net.ssl.ManagerFactoryParameters) when
the SSLContext is created. |
void |
setTrustManagerFactoryProvider(java.lang.String provider)
Sets the provider to use when creating the
TrustManagerFactory
using
TrustManagerFactory.getInstance(java.lang.String, java.lang.String) . |
protected java.lang.Object createInstance() throws java.lang.Exception
java.lang.Exception
public java.lang.Class getObjectType()
public void setProtocol(java.lang.String protocol)
SSLContext
. The
default is TLS
.protocol
- the name of the protocol.java.lang.IllegalArgumentException
- if the specified value is
null
.public void setKeyManagerFactoryAlgorithmUseDefault(boolean useDefault)
true
while no KeyManagerFactory
has been set using setKeyManagerFactory(KeyManagerFactory)
and
no algorithm has been set using
setKeyManagerFactoryAlgorithm(String)
the default algorithm
return by KeyManagerFactory.getDefaultAlgorithm()
will be used.useDefault
- true
or false
.public void setTrustManagerFactoryAlgorithmUseDefault(boolean useDefault)
true
while no TrustManagerFactory
has been set using setTrustManagerFactory(TrustManagerFactory)
and
no algorithm has been set using
setTrustManagerFactoryAlgorithm(String)
the default algorithm
return by TrustManagerFactory.getDefaultAlgorithm()
will be used.useDefault
- true
or false
.public void setKeyManagerFactory(javax.net.ssl.KeyManagerFactory factory)
KeyManagerFactory
to use. If this is set the properties
which are used by this factory bean to create a KeyManagerFactory
will all be ignored.factory
- the factory.public void setKeyManagerFactoryAlgorithm(java.lang.String algorithm)
KeyManagerFactory
using KeyManagerFactory.getInstance(java.lang.String)
or
KeyManagerFactory.getInstance(java.lang.String, java.lang.String)
.
This property will be ignored if a KeyManagerFactory
has been
set directly using setKeyManagerFactory(KeyManagerFactory)
.
If this property isn't set while no KeyManagerFactory
has been
set using setKeyManagerFactory(KeyManagerFactory)
and
setKeyManagerFactoryAlgorithmUseDefault(boolean)
has been set to
true
the value returned
by KeyManagerFactory.getDefaultAlgorithm()
will be used instead.
algorithm
- the algorithm to use.public void setKeyManagerFactoryProvider(java.lang.String provider)
KeyManagerFactory
using
KeyManagerFactory.getInstance(java.lang.String, java.lang.String)
.
This property will be ignored if a KeyManagerFactory
has been
set directly using setKeyManagerFactory(KeyManagerFactory)
.
If this property isn't set and no KeyManagerFactory
has been set
using setKeyManagerFactory(KeyManagerFactory)
KeyManagerFactory.getInstance(java.lang.String)
will be used
to create the KeyManagerFactory
.
provider
- the name of the provider.public void setKeyManagerFactoryKeyStore(java.security.KeyStore keyStore)
KeyStore
which will be used in the call to
KeyManagerFactory.init(java.security.KeyStore, char[])
when
the SSLContext
is created.keyStore
- the key store.public void setKeyManagerFactoryKeyStorePassword(java.lang.String password)
KeyManagerFactory.init(java.security.KeyStore, char[])
when
the SSLContext
is created.password
- the password. Use null
to disable password.public void setTrustManagerFactory(javax.net.ssl.TrustManagerFactory factory)
TrustManagerFactory
to use. If this is set the properties
which are used by this factory bean to create a TrustManagerFactory
will all be ignored.factory
- the factory.public void setTrustManagerFactoryAlgorithm(java.lang.String algorithm)
TrustManagerFactory
using TrustManagerFactory.getInstance(java.lang.String)
or
TrustManagerFactory.getInstance(java.lang.String, java.lang.String)
.
This property will be ignored if a TrustManagerFactory
has been
set directly using setTrustManagerFactory(TrustManagerFactory)
.
If this property isn't set while no TrustManagerFactory
has been
set using setTrustManagerFactory(TrustManagerFactory)
and
setTrustManagerFactoryAlgorithmUseDefault(boolean)
has been set to
true
the value returned
by TrustManagerFactory.getDefaultAlgorithm()
will be used instead.
algorithm
- the algorithm to use.public void setTrustManagerFactoryKeyStore(java.security.KeyStore keyStore)
KeyStore
which will be used in the call to
TrustManagerFactory.init(java.security.KeyStore)
when
the SSLContext
is created.
This property will be ignored if ManagerFactoryParameters
has been
set directly using setTrustManagerFactoryParameters(ManagerFactoryParameters)
.
keyStore
- the key store.public void setTrustManagerFactoryParameters(javax.net.ssl.ManagerFactoryParameters parameters)
ManagerFactoryParameters
which will be used in the call to
TrustManagerFactory.init(javax.net.ssl.ManagerFactoryParameters)
when
the SSLContext
is created.parameters
- describing provider-specific trust material.public void setTrustManagerFactoryProvider(java.lang.String provider)
TrustManagerFactory
using
TrustManagerFactory.getInstance(java.lang.String, java.lang.String)
.
This property will be ignored if a TrustManagerFactory
has been
set directly using setTrustManagerFactory(TrustManagerFactory)
.
If this property isn't set and no TrustManagerFactory
has been set
using setTrustManagerFactory(TrustManagerFactory)
TrustManagerFactory.getInstance(java.lang.String)
will be used
to create the TrustManagerFactory
.
provider
- the name of the provider.public void setSecureRandom(java.security.SecureRandom secureRandom)
SecureRandom
to use when initializing the
SSLContext
. The JVM's default will be used if this isn't set.secureRandom
- the SecureRandom
or null
if the
JVM's default should be used.SSLContext.init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom)