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