Richard,
Without the great insight and vision you see in this work, I too also would like to lend my concern where all this is going. I just recently had to go in and fix something that had been working. I'm not complaining about that, things do break, but the time to understand all of this compared to what once was contained in a single file and could be understood with the just the basic understand of Java class library and sockets is slowing becoming "daunting" to figure out all the pluggablity and configuration. There was the need to go and investigate the jakarta commons discovery package which seemed to be "sparsely" documented which I finally concluded that if I really wanted to figure out I would need to down load its source and investigate. Mind you there might be more there, but I was in rush to get something working again and move on!! I really question the requirement th! at all of this fills too; who will really needs to use this? Was what we had sufficient to meet their needs? The complexity of just all this configuration stuff is just another bar raised for people wanting to join Axis to contribute. It makes understand and maintaining a whole lot more difficult. At one time I could look at HTTPSender.java all by itself and within very short time feel comfortable with modifying it; now I need to scour through several different Axis classes and some other package is see a being "lightly" documented. What's there now also means another package to maintain in sync with in the future too. In most systems I have seen configuration and pluggablity is just a class or two and most often just a few lines of code; however, in Axis it has become it own whole subsystem architecture! Do we have testcases for all this? How about for all those socket factories? I was sure while I! was working on this the change I did by modifying the ! default secure socket implementation would break some tests... it didn't as far as I could tell. So do we have any test coverage here? I have a some real reservations whether the benefit derived to anyone warrants its *total* cost.
"In practicality, most systems versatility is seldom a product of the quantity of features, but of its simplicity."
Rick Rineholt
"The truth is out there... All you need is a better search engine!"
[EMAIL PROTECTED]
Please respond to [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
cc:
Subject: Re: cvs commit: xml-axis/java/xmls targets.xml
Richard,
I'm still confused by the direction you and Dims are going with all of
this - perhaps I just don't understand what's involved with j2ee but why do
we need to have Sun, IBM and JDK14 versions of these files? Continuing
down this path we'll be force to add code to Axis for each and every impl.
We don't have this issue with parsers - people can any impl just so long as
they adhere to the interfaces. Isn't J2EE the same way?
-Dug
[EMAIL PROTECTED] on 10/08/2002 06:24:00 PM
Please respond to [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
cc:
Subject: cvs commit: xml-axis/java/xmls targets.xml
rsitze 2002/10/08 15:24:00
Modified: java/src/org/apache/axis/components/net
SocketFactoryFactory.java IBMJSSESocketFactory.java
java/lib commons-discovery.jar
java/src/org/apache/axis/transport/http HTTPSender.java
java/src/org/apache/axis/configuration
EngineConfigurationFactoryFinder.java
java/src/org/apache/axis AxisProperties.java
java build.xml
java/xmls targets.xml
Added: java/src/org/apache/axis/components/net
IBMFakeTrustSocketFactory.java
JDK14FakeTrustSocketFactory.java
SunFakeTrustSocketFactory.java
SecureSocketFactory.java SunJSSESocketFactory.java
JDK14JSSESocketFactory.java
Removed: java/src/org/apache/axis/components/net
FakeTrustSocketFactory.java JSSESocketFactory.java
java/src/org/apache/axis/discovery
DiscoverOldNamesInManagedProperties.java
DiscoverConstNames.java
Log:
work around components.net.*:
- Moved JSSE (and Fake*) classes to Sun*.
- Introduced JDK14* version, though they need more work/cleanup.
- No way to configure SocketFactory and SecureSocketFactories
separately, so added new interface SecureSocketFactory to
key off of during discovery process.
other:
- Moved discovery helper classes to discovery.
Revision Changes Path
1.8 +27 -35
xml-axis/java/src/org/apache/axis/components/net/SocketFactoryFactory.java
Index: SocketFactoryFactory.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/components/net/SocketFactoryFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SocketFactoryFactory.java 8 Oct 2002 17:55:33 -0000
1.7
+++ SocketFactoryFactory.java 8 Oct 2002 22:23:59 -0000
1.8
@@ -79,53 +79,45 @@
LogFactory.getLog(SocketFactoryFactory.class.getName());
/** socket factory */
- private static SocketFactory theFactory = null;
-
- /** secure socket factory */
- private static SocketFactory theSecureFactory = null;
+ private static Hashtable factories = new Hashtable();
private static final Class classes[] = new Class[] { Hashtable.class
};
/**
* Returns a copy of the environment's default socket factory.
- *
+ *
+ * @param protocol Today this only supports "http" & "https".
* @param attributes
*
* @return
*/
- public static synchronized SocketFactory getFactory(Hashtable
attributes) {
+ public static synchronized SocketFactory getFactory(String protocol,
+ Hashtable
attributes) {
+ SocketFactory theFactory =
(SocketFactory)factories.get(protocol);
+
if (theFactory == null) {
Object objects[] = new Object[] { attributes };
-
- theFactory = (SocketFactory)AxisProperties.newInstance(
- new SPInterface(SocketFactory.class,
- "axis.socketFactory",
- classes,
- objects),
-
"org.apache.axis.components.net.DefaultSocketFactory");
+
+ if (protocol.equalsIgnoreCase("http")) {
+ theFactory = (SocketFactory)AxisProperties.newInstance(
+ new SPInterface(SocketFactory.class,
+ "axis.socketFactory",
+ classes,
+ objects),
+
"org.apache.axis.components.net.DefaultSocketFactory");
+ } else if (protocol.equalsIgnoreCase("https")) {
+ theFactory = (SocketFactory)AxisProperties.newInstance(
+ new SPInterface(SecureSocketFactory.class,
+ "axis.socketSecureFactory",
+ classes,
+ objects),
+
"org.apache.axis.components.net.DefaultSecureSocketFactory");
+ }
+
+ if (theFactory != null) {
+ factories.put(protocol, theFactory);
+ }
}
return theFactory;
- }
-
- /**
- * Returns a copy of the environment's default secure socket
factory.
- *
- * @param attributes
- *
- * @return
- */
- public static synchronized SocketFactory getSecureFactory(
- Hashtable attributes) {
- if (theSecureFactory == null) {
- Object objects[] = new Object[] { attributes };
-
- theSecureFactory =
(SocketFactory)AxisProperties.newInstance(
- new SPInterface(SocketFactory.class,
- "axis.socketSecureFactory",
- classes,
- objects),
-
"org.apache.axis.components.net.DefaultSecureSocketFactory");
- }
- return theSecureFactory;
}
}
1.2 +10 -8
xml-axis/java/src/org/apache/axis/components/net/IBMJSSESocketFactory.java
Index: IBMJSSESocketFactory.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/components/net/IBMJSSESocketFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IBMJSSESocketFactory.java 8 Oct 2002 12:12:47 -0000
1.1
+++ IBMJSSESocketFactory.java 8 Oct 2002 22:23:59 -0000
1.2
@@ -55,6 +55,11 @@
package org.apache.axis.components.net;
import com.ibm.net.ssl.SSLContext;
+import com.ibm.net.ssl.KeyManagerFactory;
+import com.ibm.net.ssl.TrustManager;
+import com.ibm.net.ssl.TrustManagerFactory;
+import com.ibm.jsse.JSSEProvider;
+
import org.apache.axis.AxisProperties;
import org.apache.axis.utils.JavaUtils;
import org.apache.axis.utils.Messages;
@@ -281,7 +286,7 @@
* @return SSLContext
* @throws Exception
*/
- protected com.ibm.net.ssl.SSLContext getContext() throws Exception {
+ protected SSLContext getContext() throws Exception {
// Please don't change the name of the attribute - other
// software may depend on it ( j2ee for sure )
String keystoreFile = (String) attributes.get("keystore");
@@ -324,17 +329,15 @@
KeyStore kstore = initKeyStore(keystoreFile, keystorePass);
// Key manager will extract the server key
- com.ibm.net.ssl.KeyManagerFactory kmf =
-
com.ibm.net.ssl.KeyManagerFactory.getInstance(algorithm);
+ KeyManagerFactory kmf =
KeyManagerFactory.getInstance(algorithm);
kmf.init(kstore, keyPass.toCharArray());
// If client authentication is needed, set up TrustManager
- com.ibm.net.ssl.TrustManager[] tm = null;
+ TrustManager[] tm = null;
if (clientAuth) {
- com.ibm.net.ssl.TrustManagerFactory tmf =
-
com.ibm.net.ssl.TrustManagerFactory.getInstance("SunX509");
+ TrustManagerFactory tmf =
TrustManagerFactory.getInstance("SunX509");
tmf.init(kstore);
tm = tmf.getTrustManagers();
@@ -342,8 +345,7 @@
// Create a SSLContext ( to create the ssl factory )
// This is the only way to use server sockets with JSSE 1.0.1
- com.ibm.net.ssl.SSLContext context =
- com.ibm.net.ssl.SSLContext.getInstance(protocol); //
SSL
+ SSLContext context = SSLContext.getInstance(protocol); // SSL
// init context with the key managers
context.init(kmf.getKeyManagers(), tm,
1.1
xml-axis/java/src/org/apache/axis/components/net/IBMFakeTrustSocketFactory.java
Index: IBMFakeTrustSocketFactory.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Axis" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.axis.components.net;
import java.util.Hashtable;
import org.apache.axis.components.logger.LogFactory;
import org.apache.axis.utils.Messages;
import org.apache.commons.logging.Log;
import com.ibm.net.ssl.SSLContext;
import com.ibm.net.ssl.TrustManager;
import com.ibm.net.ssl.X509TrustManager;
/**
* Hook for Axis sender, allowing unsigned server certs
*/
public class IBMFakeTrustSocketFactory extends IBMJSSESocketFactory {
/** Field log */
protected static Log log =
LogFactory.getLog(IBMFakeTrustSocketFactory.class.getName());
/**
* Constructor FakeTrustSocketFactory
*
* @param attributes
*/
public IBMFakeTrustSocketFactory(Hashtable attributes) {
super(attributes);
}
/**
* Method getContext
*
* @return
*
* @throws Exception
*/
protected SSLContext getContext() throws Exception {
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, // we don't need no stinkin KeyManager
new TrustManager[]{new FakeX509TrustManager()},
new java.security.SecureRandom());
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf00"));
}
return sc;
} catch (Exception exc) {
log.error(Messages.getMessage("ftsf01"), exc);
throw new Exception(Messages.getMessage("ftsf02"));
}
}
/**
* Class FakeX509TrustManager
*/
public static class FakeX509TrustManager implements X509TrustManager
{
/** Field log */
protected static Log log =
LogFactory.getLog(FakeX509TrustManager.class.getName());
/**
* Method isClientTrusted
*
* @param chain
*
* @return
*/
public boolean isClientTrusted(java.security.cert
.X509Certificate[] chain) {
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf03"));
}
return true;
}
/**
* Method isServerTrusted
*
* @param chain
*
* @return
*/
public boolean isServerTrusted(java.security.cert
.X509Certificate[] chain) {
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf04"));
}
return true;
}
/**
* Method getAcceptedIssuers
*
* @return
*/
public java.security.cert.X509Certificate[] getAcceptedIssuers()
{
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf05"));
}
return null;
}
}
}
1.1
xml-axis/java/src/org/apache/axis/components/net/JDK14FakeTrustSocketFactory.java
Index: JDK14FakeTrustSocketFactory.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Axis" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.axis.components.net;
import java.util.Hashtable;
import org.apache.axis.components.logger.LogFactory;
import org.apache.axis.utils.Messages;
import org.apache.commons.logging.Log;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
/**
* Hook for Axis sender, allowing unsigned server certs
*/
public class JDK14FakeTrustSocketFactory extends JDK14JSSESocketFactory {
/** Field log */
protected static Log log =
LogFactory.getLog(JDK14FakeTrustSocketFactory.class.getName());
/**
* Constructor FakeTrustSocketFactory
*
* @param attributes
*/
public JDK14FakeTrustSocketFactory(Hashtable attributes) {
super(attributes);
}
/**
* Method getContext
*
* @return
*
* @throws Exception
*/
protected SSLContext getContext() throws Exception {
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, // we don't need no stinkin KeyManager
new TrustManager[]{new FakeX509TrustManager()},
new java.security.SecureRandom());
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf00"));
}
return sc;
} catch (Exception exc) {
log.error(Messages.getMessage("ftsf01"), exc);
throw new Exception(Messages.getMessage("ftsf02"));
}
}
/**
* Class FakeX509TrustManager
*/
public static class FakeX509TrustManager implements X509TrustManager
{
/** Field log */
protected static Log log =
LogFactory.getLog(FakeX509TrustManager.class.getName());
/**
* Method isClientTrusted
*
* @param chain
*
* @return
*/
public void
checkClientTrusted(java.security.cert.X509Certificate[] chain,
String arg)
throws java.security.cert.CertificateException
{
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf03"));
}
}
/**
* Method isServerTrusted
*
* @param chain
*
* @return
*/
public void
checkServerTrusted(java.security.cert.X509Certificate[] chain,
String arg)
throws java.security.cert.CertificateException
{
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf04"));
}
}
/**
* Method getAcceptedIssuers
*
* @return
*/
public java.security.cert.X509Certificate[] getAcceptedIssuers()
{
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf05"));
}
return null;
}
}
}
1.1
xml-axis/java/src/org/apache/axis/components/net/SunFakeTrustSocketFactory.java
Index: SunFakeTrustSocketFactory.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Axis" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.axis.components.net;
import java.util.Hashtable;
import org.apache.axis.components.logger.LogFactory;
import org.apache.axis.utils.Messages;
import org.apache.commons.logging.Log;
import com.sun.net.ssl.SSLContext;
import com.sun.net.ssl.TrustManager;
import com.sun.net.ssl.X509TrustManager;
/**
* Hook for Axis sender, allowing unsigned server certs
*/
public class SunFakeTrustSocketFactory extends SunJSSESocketFactory {
/** Field log */
protected static Log log =
LogFactory.getLog(SunFakeTrustSocketFactory.class.getName());
/**
* Constructor FakeTrustSocketFactory
*
* @param attributes
*/
public SunFakeTrustSocketFactory(Hashtable attributes) {
super(attributes);
}
/**
* Method getContext
*
* @return
*
* @throws Exception
*/
protected SSLContext getContext() throws Exception {
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, // we don't need no stinkin KeyManager
new TrustManager[]{new FakeX509TrustManager()},
new java.security.SecureRandom());
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf00"));
}
return sc;
} catch (Exception exc) {
log.error(Messages.getMessage("ftsf01"), exc);
throw new Exception(Messages.getMessage("ftsf02"));
}
}
/**
* Class FakeX509TrustManager
*/
public static class FakeX509TrustManager implements X509TrustManager
{
/** Field log */
protected static Log log =
LogFactory.getLog(FakeX509TrustManager.class.getName());
/**
* Method isClientTrusted
*
* @param chain
*
* @return
*/
public boolean isClientTrusted(java.security.cert
.X509Certificate[] chain) {
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf03"));
}
return true;
}
/**
* Method isServerTrusted
*
* @param chain
*
* @return
*/
public boolean isServerTrusted(java.security.cert
.X509Certificate[] chain) {
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf04"));
}
return true;
}
/**
* Method getAcceptedIssuers
*
* @return
*/
public java.security.cert.X509Certificate[] getAcceptedIssuers()
{
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage("ftsf05"));
}
return null;
}
}
}
1.1
xml-axis/java/src/org/apache/axis/components/net/SecureSocketFactory.java
Index: SecureSocketFactory.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Axis" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.axis.components.net;
/**
* Secure Socket factory.
* This has a separate interface to allow discovery (by interface)
* and runtime distinction to be made between Socket & SecureSockets.
*
* @author Richard A. Sitze
* @author Davanum Srinivas ([EMAIL PROTECTED])
*/
public interface SecureSocketFactory extends SocketFactory {
}
1.1