Index: test/src/main/org/jboss/test/util/SecurityProviderUtil.java
===================================================================
--- test/src/main/org/jboss/test/util/SecurityProviderUtil.java (revision 70539)
+++ test/src/main/org/jboss/test/util/SecurityProviderUtil.java (working copy)
@@ -25,6 +25,8 @@
import org.jboss.logging.Logger;
+import java.util.Properties;
+
//$Id$
/**
@@ -39,24 +41,68 @@
private static Logger log = Logger.getLogger(SecurityProviderUtil.class);
//Pass the system properties as part of the test suite setup - based on your VM
- private static String jsseProviderClassName = System.getProperty("jsse.provider.class",
- "com.sun.net.ssl.internal.ssl.Provider");
private static String sslProtocolClass = System.getProperty("www.protocol.class",
"com.sun.net.ssl.internal.www.protocol");
+ private static final String PROP_FILE_NAME = "security-provider.properties";
+ private static final String JSSE_PROV_NAME_PREFIX = "jsse.provider.class.";
+
/**
* Get a JSSE Security Provider
* @return
*/
public static Provider getJSSEProvider()
{
+ String jsseProviderName = null;
+
+ Properties prop = new Properties();
+ try
+ {
+ prop.load(ClassLoader.getSystemResourceAsStream(PROP_FILE_NAME));
+ } catch (java.io.IOException ioe)
+ {
+ log.error("Error loading the property file: ", ioe);
+ return null;
+ }
+
+ boolean searched = false;
+ boolean found = false;
+ int i=1;
+ while (!searched)
+ {
+ if (prop.containsKey(JSSE_PROV_NAME_PREFIX + i))
+ {
+ String jsseProvider = prop.getProperty(JSSE_PROV_NAME_PREFIX + i);
+ try
+ {
+ Class.forName(jsseProvider);
+ jsseProviderName = jsseProvider;
+ log.debug ("Using JSEE Provider :" + jsseProvider);
+ searched = true;
+ } catch (ClassNotFoundException cnfe)
+ {
+ log.debug ("Could not find JSEE Provider :" + jsseProvider );
+ }
+ } else
+ {
+ log.debug("Unable to read " + JSSE_PROV_NAME_PREFIX + i + " - no other properties");
+ searched = true;
+ }
+ i++;
+ }
+ if (jsseProviderName == null)
+ {
+ log.error ("No JSSE Providers found. Please add the appropriate provider in providers.properties");
+ }
+
+
Provider obj = null;
ClassLoader tcl = Thread.currentThread().getContextClassLoader();
Class clazz;
try
{
- clazz = tcl.loadClass(jsseProviderClassName);
+ clazz = tcl.loadClass(jsseProviderName);
obj = (Provider)clazz.newInstance();
}
catch (Throwable t)
Index: test/src/resources/security-provider.properties
===================================================================
--- test/src/resources/security-provider.properties (revision 0)
+++ test/src/resources/security-provider.properties (revision 0)
@@ -0,0 +1,10 @@
+# Specifies a list of possible jsse provider classes.
+# Numbers must start from 1 upwards and denotes priority.
+jsse.provider.class.1 com.sun.net.ssl.internal.ssl.Provider
+jsse.provider.class.2 com.ibm.jsse.IBMJSSEProvider
+
+# Specifies a list of possible www protocol classes.
+# Numbers must start from 1 upwards and denotes priority.
+#www.protocol.class.1 com.sun.net.ssl.internal.www.protocol
+#www.protocol.class.2 com.ibm.net.ssl.internal.www.protocol
+
Index: test/build.xml
===================================================================
--- test/build.xml (revision 70539)
+++ test/build.xml (working copy)
@@ -106,7 +106,7 @@
-->
@@ -120,6 +120,7 @@
+