org.apache.mina.integration.spring.ssl
Class SSLContextFactoryBean

java.lang.Object
  extended by org.springframework.beans.factory.config.AbstractFactoryBean
      extended by org.apache.mina.integration.spring.ssl.SSLContextFactoryBean
All Implemented Interfaces:
BeanClassLoaderAware, BeanFactoryAware, DisposableBean, FactoryBean, InitializingBean

public class SSLContextFactoryBean
extends AbstractFactoryBean

Spring 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.

Version:
$Rev: 555855 $, $Date: 2007-07-13 05:19:00 +0200 (Fr, 13. Jul 2007) $
Author:
The Apache Directory Project (mina-dev@directory.apache.org)

Field Summary
 
Fields inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
logger
 
Constructor Summary
SSLContextFactoryBean()
           
 
Method Summary
protected  Object createInstance()
           
 Class getObjectType()
           
 void setKeyManagerFactory(KeyManagerFactory factory)
          Sets the KeyManagerFactory to use.
 void setKeyManagerFactoryAlgorithm(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(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(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(String provider)
          Sets the provider to use when creating the KeyManagerFactory using KeyManagerFactory.getInstance(java.lang.String, java.lang.String).
 void setProtocol(String protocol)
          Sets the protocol to use when creating the SSLContext.
 void setSecureRandom(SecureRandom secureRandom)
          Sets the SecureRandom to use when initializing the SSLContext.
 void setTrustManagerFactory(TrustManagerFactory factory)
          Sets the TrustManagerFactory to use.
 void setTrustManagerFactoryAlgorithm(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(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(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(String provider)
          Sets the provider to use when creating the TrustManagerFactory using TrustManagerFactory.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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SSLContextFactoryBean

public SSLContextFactoryBean()
Method Detail

createInstance

protected Object createInstance()
                         throws Exception
Specified by:
createInstance in class AbstractFactoryBean
Throws:
Exception

getObjectType

public Class getObjectType()
Specified by:
getObjectType in interface FactoryBean
Specified by:
getObjectType in class AbstractFactoryBean

setProtocol

public void setProtocol(String protocol)
Sets the protocol to use when creating the SSLContext. The default is TLS.

Parameters:
protocol - the name of the protocol.
Throws:
IllegalArgumentException - if the specified value is null.

setKeyManagerFactoryAlgorithmUseDefault

public 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.

Parameters:
useDefault - true or false.

setTrustManagerFactoryAlgorithmUseDefault

public 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.

Parameters:
useDefault - true or false.

setKeyManagerFactory

public void setKeyManagerFactory(KeyManagerFactory factory)
Sets the KeyManagerFactory to use. If this is set the properties which are used by this factory bean to create a KeyManagerFactory will all be ignored.

Parameters:
factory - the factory.

setKeyManagerFactoryAlgorithm

public void setKeyManagerFactoryAlgorithm(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).

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.

Parameters:
algorithm - the algorithm to use.

setKeyManagerFactoryProvider

public void setKeyManagerFactoryProvider(String provider)
Sets the provider to use when creating the 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.

Parameters:
provider - the name of the provider.

setKeyManagerFactoryKeyStore

public void setKeyManagerFactoryKeyStore(KeyStore keyStore)
Sets the KeyStore which will be used in the call to KeyManagerFactory.init(java.security.KeyStore, char[]) when the SSLContext is created.

Parameters:
keyStore - the key store.

setKeyManagerFactoryKeyStorePassword

public void setKeyManagerFactoryKeyStorePassword(String password)
Sets the password which will be used in the call to KeyManagerFactory.init(java.security.KeyStore, char[]) when the SSLContext is created.

Parameters:
password - the password. Use null to disable password.

setTrustManagerFactory

public void setTrustManagerFactory(TrustManagerFactory factory)
Sets the TrustManagerFactory to use. If this is set the properties which are used by this factory bean to create a TrustManagerFactory will all be ignored.

Parameters:
factory - the factory.

setTrustManagerFactoryAlgorithm

public void setTrustManagerFactoryAlgorithm(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).

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.

Parameters:
algorithm - the algorithm to use.

setTrustManagerFactoryKeyStore

public void setTrustManagerFactoryKeyStore(KeyStore keyStore)
Sets the 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).

Parameters:
keyStore - the key store.

setTrustManagerFactoryParameters

public void setTrustManagerFactoryParameters(ManagerFactoryParameters parameters)
Sets the ManagerFactoryParameters which will be used in the call to TrustManagerFactory.init(javax.net.ssl.ManagerFactoryParameters) when the SSLContext is created.

Parameters:
parameters - describing provider-specific trust material.

setTrustManagerFactoryProvider

public void setTrustManagerFactoryProvider(String provider)
Sets the provider to use when creating the 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.

Parameters:
provider - the name of the provider.

setSecureRandom

public void setSecureRandom(SecureRandom secureRandom)
Sets the SecureRandom to use when initializing the SSLContext. The JVM's default will be used if this isn't set.

Parameters:
secureRandom - the SecureRandom or null if the JVM's default should be used.
See Also:
SSLContext.init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom)


Copyright © 2004-2011 Apache MINA Project. All Rights Reserved.