001    /*
002     * Created on 12-Aug-2005
003     */
004    package org.activemq.transport.https;
005    
006    import java.net.URI;
007    
008    import javax.jms.JMSException;
009    
010    import org.activemq.transport.http.HttpTransportConnector;
011    import org.apache.commons.logging.Log;
012    import org.apache.commons.logging.LogFactory;
013    import org.mortbay.http.SslListener;
014    
015    public class HttpsTransportConnector extends HttpTransportConnector {
016    
017            private static final Log log = LogFactory.getLog( HttpsTransportConnector.class );
018    
019            private String keyPassword = System.getProperty( "javax.net.ssl.keyPassword" );
020            private String keyStorePassword = System.getProperty( "javax.net.ssl.keyStorePassword" );
021            private String keyStore = System.getProperty( "javax.net.ssl.keyStore" );
022            private String keyStoreType = null;
023            private String certificateAlgorithm = null;
024            private String protocol = null;
025            
026            public HttpsTransportConnector( URI uri ) {
027                    super( uri );
028            }
029    
030            public void start() throws JMSException {
031                    SslListener sslListener = new SslListener();
032                    sslListener.setKeystore( keyStore );
033                    sslListener.setPassword( keyStorePassword );
034                    // if the keyPassword hasn't been set, default it to the
035                    // key store password
036                    if ( keyPassword == null ) {
037                            sslListener.setKeyPassword( keyStorePassword ); 
038                    }
039                    if ( keyStoreType != null ) {
040                            sslListener.setKeystoreType( keyStoreType );
041                    }
042                    if ( certificateAlgorithm != null ) {
043                            sslListener.setAlgorithm( certificateAlgorithm );
044                    }
045                    if ( protocol != null ) {
046                            sslListener.setProtocol( protocol );
047                    }
048                    
049                    setSocketListener( sslListener );
050                    
051                    super.start();
052            }
053            
054            // Properties
055            //--------------------------------------------------------------------------------
056            
057            public String getCertificateAlgorithm() {
058                    return certificateAlgorithm;
059            }
060    
061            public void setCertificateAlgorithm( String certificateAlgorithm ) {
062                    this.certificateAlgorithm = certificateAlgorithm;
063            }
064    
065            public String getKeyStore() {
066                    return keyStore;
067            }
068    
069            public void setKeyStore( String keyStore ) {
070                    this.keyStore = keyStore;
071            }
072    
073            public String getKeyPassword() {
074                    return keyPassword;
075            }
076    
077            public void setKeyPassword( String keyPassword ) {
078                    this.keyPassword = keyPassword;
079            }
080    
081            public String getKeyStoreType() {
082                    return keyStoreType;
083            }
084    
085            public void setKeyStoreType( String keyStoreType ) {
086                    this.keyStoreType = keyStoreType;
087            }
088    
089            public String getKeyStorePassword() {
090                    return keyStorePassword;
091            }
092    
093            public void setKeyStorePassword( String keyStorePassword ) {
094                    this.keyStorePassword = keyStorePassword;
095            }
096    
097            public String getProtocol() {
098                    return protocol;
099            }
100    
101            public void setProtocol( String protocol ) {
102                    this.protocol = protocol;
103            }
104    
105    }