You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by as...@apache.org on 2007/02/22 07:43:05 UTC

svn commit: r510420 - in /webservices/synapse/trunk/java: modules/nhttp/src/org/apache/axis2/transport/nhttp/ modules/samples/src/main/scripts/ repository/conf/ repository/conf/sample/resources/misc/

Author: asankha
Date: Wed Feb 21 22:43:04 2007
New Revision: 510420

URL: http://svn.apache.org/viewvc?view=rev&rev=510420
Log:
add full support for NIO SSL listener and sender
added a sample keystore to start the Synapse server 
updated the default axis2.xml for Synapse and sample axis2 server to use the new transports

Added:
    webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLSender.java
Modified:
    webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOListener.java
    webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLListener.java
    webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java
    webservices/synapse/trunk/java/modules/samples/src/main/scripts/axis2server.sh
    webservices/synapse/trunk/java/repository/conf/axis2.xml
    webservices/synapse/trunk/java/repository/conf/keystore.jks
    webservices/synapse/trunk/java/repository/conf/sample/resources/misc/axis2.xml

Modified: webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOListener.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOListener.java?view=diff&rev=510420&r1=510419&r2=510420
==============================================================================
--- webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOListener.java (original)
+++ webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOListener.java Wed Feb 21 22:43:04 2007
@@ -20,6 +20,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.transport.TransportListener;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -132,12 +133,17 @@
         }
 
         // is this an SSL listener?
-        Parameter keystore = transprtIn.getParameter("keystore");
-        if (keystore != null) {
-            sslContext = getSSLContext(keystore);
-        }
+        sslContext = getSSLContext(transprtIn);
+
+        serviceEPRPrefix = getServiceEPRPrefix(cfgCtx, host, port);
+    }
 
-        serviceEPRPrefix = "http://" + host + (port == 80 ? "" : ":" + port) +
+    /**
+     * Return the EPR prefix for services made available over this transport
+     * @return
+     */
+    protected String getServiceEPRPrefix(ConfigurationContext cfgCtx, String host, int port) {
+        return "http://" + host + (port == 80 ? "" : ":" + port) +
             (!cfgCtx.getServiceContextPath().startsWith("/") ? "/" : "") +
             cfgCtx.getServiceContextPath() +
             (!cfgCtx.getServiceContextPath().endsWith("/") ? "/" : "");
@@ -145,10 +151,10 @@
 
     /**
      * Create the SSLContext to be used by this listener
-     * @param ksParam
+     * @param transportIn
      * @return always null
      */
-    protected SSLContext getSSLContext(Parameter ksParam) throws AxisFault {
+    protected SSLContext getSSLContext(TransportInDescription transportIn) throws AxisFault {
         return null;
     }
 

Modified: webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLListener.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLListener.java?view=diff&rev=510420&r1=510419&r2=510420
==============================================================================
--- webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLListener.java (original)
+++ webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLListener.java Wed Feb 21 22:43:04 2007
@@ -1,7 +1,9 @@
 package org.apache.axis2.transport.nhttp;
 
 import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axiom.om.OMElement;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -10,9 +12,7 @@
 import org.apache.http.nio.NHttpServiceHandler;
 import org.apache.http.params.HttpParams;
 
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.KeyManager;
+import javax.net.ssl.*;
 import javax.xml.namespace.QName;
 import java.security.KeyStore;
 import java.security.GeneralSecurityException;
@@ -29,37 +29,91 @@
     }
 
     /**
+     * Return the EPR prefix for services made available over this transport
+     * @return
+     */
+    protected String getServiceEPRPrefix(ConfigurationContext cfgCtx, String host, int port) {
+        return "https://" + host + (port == 443 ? "" : ":" + port) +
+            (!cfgCtx.getServiceContextPath().startsWith("/") ? "/" : "") +
+            cfgCtx.getServiceContextPath() +
+            (!cfgCtx.getServiceContextPath().endsWith("/") ? "/" : "");
+    }
+
+
+    /**
      * Create the SSLContext to be used by this listener
-     * @param ksParam the Axis2 Parameter that specifies the ksParam info
+     * @param transportIn the Axis2 transport description
      * @return the SSLContext to be used
      */
-    protected SSLContext getSSLContext(Parameter ksParam) throws AxisFault {
-        OMElement ksEle = ksParam.getParameterElement().getFirstElement();
-        String ksLocation     = ksEle.getFirstChildWithName(new QName("Location")).getText();
-        String ksType         = ksEle.getFirstChildWithName(new QName("Type")).getText();
-        String ksPassword     = ksEle.getFirstChildWithName(new QName("Password")).getText();
-        String pvtKeyPassword = ksEle.getFirstChildWithName(new QName("KeyPassword")).getText();
+    protected SSLContext getSSLContext(TransportInDescription transportIn) throws AxisFault {
+
+        KeyManager[] keymanagers  = null;
+        TrustManager[] trustManagers = null;
+
+        Parameter keyParam    = transportIn.getParameter("keystore");
+        Parameter trustParam  = transportIn.getParameter("truststore");
+
+        if (keyParam != null) {
+            OMElement ksEle      = keyParam.getParameterElement().getFirstElement();
+            String location      = ksEle.getFirstChildWithName(new QName("Location")).getText();
+            String type          = ksEle.getFirstChildWithName(new QName("Type")).getText();
+            String storePassword = ksEle.getFirstChildWithName(new QName("Password")).getText();
+            String keyPassword   = ksEle.getFirstChildWithName(new QName("KeyPassword")).getText();
+
+            try {
+                KeyStore keyStore = KeyStore.getInstance(type);
+                URL url = getClass().getClassLoader().getResource(location);
+                log.debug("Loading Key Store from URL : " + url);
+
+                keyStore.load(url.openStream(), storePassword.toCharArray());
+                KeyManagerFactory kmfactory = KeyManagerFactory.getInstance(
+                    KeyManagerFactory.getDefaultAlgorithm());
+                kmfactory.init(keyStore, keyPassword.toCharArray());
+                keymanagers = kmfactory.getKeyManagers();
+
+            } catch (GeneralSecurityException gse) {
+                log.error("Error loading Key store : " + location, gse);
+                throw new AxisFault("Error loading Key store : " + location, gse);
+            } catch (IOException ioe) {
+                log.error("Error opening Key store : " + location, ioe);
+                throw new AxisFault("Error opening Key store : " + location, ioe);
+            }
+        }
+
+        if (trustParam != null) {
+            OMElement tsEle      = trustParam.getParameterElement().getFirstElement();
+            String location      = tsEle.getFirstChildWithName(new QName("Location")).getText();
+            String type          = tsEle.getFirstChildWithName(new QName("Type")).getText();
+            String storePassword = tsEle.getFirstChildWithName(new QName("Password")).getText();
+
+            try {
+                KeyStore trustStore = KeyStore.getInstance(type);
+                URL url = getClass().getClassLoader().getResource(location);
+                log.debug("Loading Trust Key Store from URL : " + url);
+
+                trustStore.load(url.openStream(), storePassword.toCharArray());
+                TrustManagerFactory trustManagerfactory = TrustManagerFactory.getInstance(
+                    TrustManagerFactory.getDefaultAlgorithm());
+                trustManagerfactory.init(trustStore);
+                trustManagers = trustManagerfactory.getTrustManagers();
+
+            } catch (GeneralSecurityException gse) {
+                log.error("Error loading Key store : " + location, gse);
+                throw new AxisFault("Error loading Key store : " + location, gse);
+            } catch (IOException ioe) {
+                log.error("Error opening Key store : " + location, ioe);
+                throw new AxisFault("Error opening Key store : " + location, ioe);
+            }
+        }
 
-        KeyStore keystore  = null;
         try {
-            keystore = KeyStore.getInstance(ksType);
-            URL url = getClass().getClassLoader().getResource(ksLocation);
-            log.debug("keystore loaded from url : " + url);
-            keystore.load(url.openStream(), ksPassword.toCharArray());
-            KeyManagerFactory kmfactory = KeyManagerFactory.getInstance(
-                KeyManagerFactory.getDefaultAlgorithm());
-            kmfactory.init(keystore, pvtKeyPassword.toCharArray());
-            KeyManager[] keymanagers = kmfactory.getKeyManagers();
             SSLContext sslcontext = SSLContext.getInstance("TLS");
-            sslcontext.init(keymanagers, null, null);
+            sslcontext.init(keymanagers, trustManagers, null);
             return sslcontext;
+
         } catch (GeneralSecurityException gse) {
             log.error("Unable to create SSL context with the given configuration", gse);
             throw new AxisFault("Unable to create SSL context with the given configuration", gse);
-        } catch (IOException ioe) {
-            log.error("Unable to open keystore", ioe);
-            throw new AxisFault("Unable to open keystore", ioe);
         }
     }
-
 }

Added: webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLSender.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLSender.java?view=auto&rev=510420
==============================================================================
--- webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLSender.java (added)
+++ webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSSLSender.java Wed Feb 21 22:43:04 2007
@@ -0,0 +1,106 @@
+package org.apache.axis2.transport.nhttp;
+
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
+import org.apache.http.nio.reactor.IOEventDispatch;
+import org.apache.http.nio.NHttpClientHandler;
+import org.apache.http.impl.nio.reactor.SSLClientIOEventDispatch;
+import org.apache.http.params.HttpParams;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axiom.om.OMElement;
+
+import javax.net.ssl.*;
+import javax.xml.namespace.QName;
+import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.net.URL;
+import java.io.IOException;
+
+public class HttpCoreNIOSSLSender extends HttpCoreNIOSender{
+
+    private static final Log log = LogFactory.getLog(HttpCoreNIOSSLSender.class);
+
+    protected IOEventDispatch getEventDispatch(
+        NHttpClientHandler handler, SSLContext sslContext, HttpParams params) {
+        return new SSLClientIOEventDispatch(handler, sslContext, params);
+    }
+
+    /**
+     * Create the SSLContext to be used by this listener
+     * @param transportOut the Axis2 transport configuration
+     * @return the SSLContext to be used
+     */
+    protected SSLContext getSSLContext(TransportOutDescription transportOut) throws AxisFault {
+
+        KeyManager[] keymanagers  = null;
+        TrustManager[] trustManagers = null;
+
+        Parameter keyParam    = transportOut.getParameter("keystore");
+        Parameter trustParam  = transportOut.getParameter("truststore");
+
+        if (keyParam != null) {
+            OMElement ksEle      = keyParam.getParameterElement().getFirstElement();
+            String location      = ksEle.getFirstChildWithName(new QName("Location")).getText();
+            String type          = ksEle.getFirstChildWithName(new QName("Type")).getText();
+            String storePassword = ksEle.getFirstChildWithName(new QName("Password")).getText();
+            String keyPassword   = ksEle.getFirstChildWithName(new QName("KeyPassword")).getText();
+
+            try {
+                KeyStore keyStore = KeyStore.getInstance(type);
+                URL url = getClass().getClassLoader().getResource(location);
+                log.debug("Loading Key Store from URL : " + url);
+
+                keyStore.load(url.openStream(), storePassword.toCharArray());
+                KeyManagerFactory kmfactory = KeyManagerFactory.getInstance(
+                    KeyManagerFactory.getDefaultAlgorithm());
+                kmfactory.init(keyStore, keyPassword.toCharArray());
+                keymanagers = kmfactory.getKeyManagers();
+
+            } catch (GeneralSecurityException gse) {
+                log.error("Error loading Key store : " + location, gse);
+                throw new AxisFault("Error loading Key store : " + location, gse);
+            } catch (IOException ioe) {
+                log.error("Error opening Key store : " + location, ioe);
+                throw new AxisFault("Error opening Key store : " + location, ioe);
+            }
+        }
+
+        if (trustParam != null) {
+            OMElement tsEle      = trustParam.getParameterElement().getFirstElement();
+            String location      = tsEle.getFirstChildWithName(new QName("Location")).getText();
+            String type          = tsEle.getFirstChildWithName(new QName("Type")).getText();
+            String storePassword = tsEle.getFirstChildWithName(new QName("Password")).getText();
+
+            try {
+                KeyStore trustStore = KeyStore.getInstance(type);
+                URL url = getClass().getClassLoader().getResource(location);
+                log.debug("Loading Trust Key Store from URL : " + url);
+
+                trustStore.load(url.openStream(), storePassword.toCharArray());
+                TrustManagerFactory trustManagerfactory = TrustManagerFactory.getInstance(
+                    TrustManagerFactory.getDefaultAlgorithm());
+                trustManagerfactory.init(trustStore);
+                trustManagers = trustManagerfactory.getTrustManagers();
+
+            } catch (GeneralSecurityException gse) {
+                log.error("Error loading Key store : " + location, gse);
+                throw new AxisFault("Error loading Key store : " + location, gse);
+            } catch (IOException ioe) {
+                log.error("Error opening Key store : " + location, ioe);
+                throw new AxisFault("Error opening Key store : " + location, ioe);
+            }
+        }
+
+        try {
+            SSLContext sslcontext = SSLContext.getInstance("TLS");
+            sslcontext.init(keymanagers, trustManagers, null);
+            return sslcontext;
+            
+        } catch (GeneralSecurityException gse) {
+            log.error("Unable to create SSL context with the given configuration", gse);
+            throw new AxisFault("Unable to create SSL context with the given configuration", gse);
+        }
+    }
+}

Modified: webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java?view=diff&rev=510420&r1=510419&r2=510420
==============================================================================
--- webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java (original)
+++ webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java Wed Feb 21 22:43:04 2007
@@ -22,6 +22,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.transport.TransportSender;
 import org.apache.axis2.transport.OutTransportInfo;
@@ -44,6 +45,7 @@
 import org.apache.commons.logging.LogFactory;
 
 import javax.xml.stream.XMLStreamException;
+import javax.net.ssl.SSLContext;
 import java.io.OutputStream;
 import java.io.IOException;
 import java.io.InterruptedIOException;
@@ -64,6 +66,8 @@
     private ConnectingIOReactor ioReactor = null;
     /** The client handler */
     private NHttpClientHandler handler = null;
+    /** The SSL Context to be used */
+    SSLContext sslContext = null;
 
     /**
      * Initialize the transport sender, and execute reactor in new seperate thread
@@ -74,6 +78,9 @@
     public void init(ConfigurationContext cfgCtx, TransportOutDescription transportOut) throws AxisFault {
         this.cfgCtx = cfgCtx;
 
+        // is this an SSL Sender?
+        sslContext = getSSLContext(transportOut);
+
         // start the Sender in a new seperate thread
         Thread t = new Thread(new Runnable() {
             public void run() {
@@ -97,7 +104,7 @@
         }
 
         handler = new ClientHandler(cfgCtx, params);
-        IOEventDispatch ioEventDispatch = new DefaultClientIOEventDispatch(handler, params);
+        IOEventDispatch ioEventDispatch = getEventDispatch(handler, sslContext, params);
 
         try {
             ioReactor.execute(ioEventDispatch);
@@ -107,6 +114,29 @@
             log.fatal("Encountered an I/O error: " + e.getMessage(), e);
         }
         log.info("Sender Shutdown");
+    }
+
+    /**
+     * Return the IOEventDispatch implementation to be used. This is overridden by the
+     * SSL sender
+     * @param handler
+     * @param sslContext
+     * @param params
+     * @return
+     */
+    protected IOEventDispatch getEventDispatch(
+        NHttpClientHandler handler, SSLContext sslContext, HttpParams params) {
+        return new DefaultClientIOEventDispatch(handler, params);
+    }
+
+    /**
+     * Always return null, as this implementation does not support outgoing SSL
+     * @param transportOut
+     * @return null
+     * @throws AxisFault
+     */
+    protected SSLContext getSSLContext(TransportOutDescription transportOut) throws AxisFault {
+        return null;
     }
 
     /**

Modified: webservices/synapse/trunk/java/modules/samples/src/main/scripts/axis2server.sh
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/samples/src/main/scripts/axis2server.sh?view=diff&rev=510420&r1=510419&r2=510420
==============================================================================
--- webservices/synapse/trunk/java/modules/samples/src/main/scripts/axis2server.sh (original)
+++ webservices/synapse/trunk/java/modules/samples/src/main/scripts/axis2server.sh Wed Feb 21 22:43:04 2007
@@ -80,7 +80,7 @@
 fi
 
 # update classpath
-AXIS2_CLASSPATH=""
+AXIS2_CLASSPATH="$AXIS2_HOME/../../repository/conf"
 for f in "$AXIS2_HOME"/../../lib/*.jar
 do
   AXIS2_CLASSPATH="$AXIS2_CLASSPATH":$f

Modified: webservices/synapse/trunk/java/repository/conf/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/repository/conf/axis2.xml?view=diff&rev=510420&r1=510419&r2=510420
==============================================================================
--- webservices/synapse/trunk/java/repository/conf/axis2.xml (original)
+++ webservices/synapse/trunk/java/repository/conf/axis2.xml Wed Feb 21 22:43:04 2007
@@ -140,17 +140,20 @@
     	<parameter name="port" locked="false">8443</parameter>
     	<parameter name="non-blocking" locked="false">true</parameter>
         <parameter name="keystore" locked="false">
-            <syn:KeyStore xmlns:syn="http://ws.apache.org/ns/synapse">
-                <!-- Key store file location-->
-                <syn:Location>keystore.jks</syn:Location>
-                <!-- Key store type (JKS/PKCS12 etc.)-->
-                <syn:Type>JKS</syn:Type>
-                <!-- Key store password-->
-                <syn:Password>password</syn:Password>
-                <!-- Private Key password-->
-                <syn:KeyPassword>password</syn:KeyPassword>
-            </syn:KeyStore>
+            <KeyStore>
+                <Location>keystore.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+                <KeyPassword>password</KeyPassword>
+            </KeyStore>
         </parameter>
+        <parameter name="truststore" locked="false">
+            <TrustStore>
+                <Location>keystore.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+            </TrustStore>
+        </parameter>                        
     </transportReceiver>
 
     <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
@@ -195,24 +198,31 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-    <transportSender name="tcp"
-                     class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
-    <transportSender name="local"
-                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
-    <!--<transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"/>-->
+    <transportSender name="tcp"   class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+    <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <transportSender name="jms"   class="org.apache.axis2.transport.jms.JMSSender"/>    
     <!-- the experimental non-blocking http transport based on HttpCore + NIO extensions -->
-    <transportSender name="http"
-                 class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
+    <transportSender name="http"  class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
         <parameter name="non-blocking" locked="false">true</parameter>
     </transportSender>
-    <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
-        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
-        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+    <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
+        <parameter name="non-blocking" locked="false">true</parameter>
+        <parameter name="keystore" locked="false">
+            <KeyStore>
+                <Location>keystore.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+                <KeyPassword>password</KeyPassword>
+            </KeyStore>
+        </parameter>
+        <parameter name="truststore" locked="false">
+            <TrustStore>
+                <Location>keystore.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+            </TrustStore>
+        </parameter>                
     </transportSender>
-    <transportSender name="jms"
-                     class="org.apache.axis2.transport.jms.JMSSender"/>
 
     <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
    <transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">

Modified: webservices/synapse/trunk/java/repository/conf/keystore.jks
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/repository/conf/keystore.jks?view=diff&rev=510420&r1=510419&r2=510420
==============================================================================
Binary files - no diff available.

Modified: webservices/synapse/trunk/java/repository/conf/sample/resources/misc/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/repository/conf/sample/resources/misc/axis2.xml?view=diff&rev=510420&r1=510419&r2=510420
==============================================================================
--- webservices/synapse/trunk/java/repository/conf/sample/resources/misc/axis2.xml (original)
+++ webservices/synapse/trunk/java/repository/conf/sample/resources/misc/axis2.xml Wed Feb 21 22:43:04 2007
@@ -102,38 +102,30 @@
     <!-- ================================================= -->
     <!-- Transport Ins -->
     <!-- ================================================= -->
-    <!--<transportReceiver name="http"
-                       class="org.apache.axis2.transport.http.SimpleHTTPServer">
-        <parameter name="port" locked="false">9000</parameter>-->
-    <!-- Here is the complete list of supported parameters (see example settings further below):
-        port: the port to listen on (default 6060)
-        hostname:  if non-null, url prefix used in reply-to endpoint references                                 (default null)
-        originServer:  value of http Server header in outgoing messages                                         (default "Simple-Server/1.1")
-        requestTimeout:  value in millis of time that requests can wait for data                                (default 20000)
-        requestTcpNoDelay:  true to maximize performance and minimize latency                                   (default true)
-                            false to minimize bandwidth consumption by combining segments  
-        requestCoreThreadPoolSize:  number of threads available for request processing (unless queue fills up)  (default 25)
-        requestMaxThreadPoolSize:  number of threads available for request processing if queue fills us         (default 150)
-                                   note that default queue never fills up:  see HttpFactory
-        threadKeepAliveTime:  time to keep threads in excess of core size alive while inactive                  (default 180)
-                              note that no such threads can exist with default unbounded request queue
-        threadKeepAliveTimeUnit:  TimeUnit of value in threadKeepAliveTime (default SECONDS)                    (default SECONDS)
-    -->
-        <!-- <parameter name="hostname"                  locked="false">http://www.myApp.com/ws</parameter> -->
-        <!-- <parameter name="originServer"              locked="false">My-Server/1.1</parameter>           -->
-        <!-- <parameter name="requestTimeout"            locked="false">10000</parameter>                   -->
-        <!-- <parameter name="requestTcpNoDelay"         locked="false">false</parameter>                   -->
-        <!-- <parameter name="requestCoreThreadPoolSize" locked="false">50</parameter>                      -->
-        <!-- <parameter name="RequestMaxThreadPoolSize"  locked="false">100</parameter>                     -->
-        <!-- <parameter name="threadKeepAliveTime"       locked="false">240000</parameter>                  -->
-        <!-- <parameter name="threadKeepAliveTimeUnit"   locked="false">MILLISECONDS</parameter>            -->
-    <!--</transportReceiver>-->
-
-    <!-- the experimental non blocking http transport based on HttpCore + NIO extensions -->
     <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
     	<parameter name="port" locked="false">8080</parameter>
     	<parameter name="non-blocking" locked="false">true</parameter>
     </transportReceiver>
+
+    <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
+    	<parameter name="port" locked="false">9002</parameter>
+    	<parameter name="non-blocking" locked="false">true</parameter>
+        <parameter name="keystore" locked="false">
+            <KeyStore>
+                <Location>keystore.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+                <KeyPassword>password</KeyPassword>
+            </KeyStore>
+        </parameter>
+        <parameter name="truststore" locked="false">
+            <TrustStore>
+                <Location>keystore.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+            </TrustStore>
+        </parameter>                
+    </transportReceiver>
     
     <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
     <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
@@ -177,29 +169,31 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-    <transportSender name="tcp"
-                     class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
-    <transportSender name="local"
-                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
-    <!--<transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"/>-->
-    <!--<transportSender name="http"
-                     class="org.apache.axis2.transport.nhttp.AsyncHTTPSender">
-        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
-        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
-    </transportSender>-->
+    <transportSender name="tcp"   class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+    <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <transportSender name="jms"   class="org.apache.axis2.transport.jms.JMSSender"/>
     <!-- the experimental non-blocking http transport based on HttpCore + NIO extensions -->
-    <transportSender name="http"
-                 class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
+    <transportSender name="http"  class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
         <parameter name="non-blocking" locked="false">true</parameter>
     </transportSender>
-    <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
-        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
-        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+    <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
+        <parameter name="non-blocking" locked="false">true</parameter>
+        <parameter name="keystore" locked="false">
+            <KeyStore>
+                <Location>keystore.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+                <KeyPassword>password</KeyPassword>
+            </KeyStore>
+        </parameter>
+        <parameter name="truststore" locked="false">
+            <TrustStore>
+                <Location>keystore.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+            </TrustStore>
+        </parameter>        
     </transportSender>
-    <transportSender name="jms"
-                     class="org.apache.axis2.transport.jms.JMSSender"/>
 
     <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
    <transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org