You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by bl...@apache.org on 2001/10/23 19:55:35 UTC
cvs commit: jakarta-jmeter/src/org/apache/jmeter/util SSLManager.java
bloritsch 01/10/23 10:55:35
Modified: src/org/apache/jmeter/protocol/http/sampler HTTPSampler.java
src/org/apache/jmeter/util SSLManager.java
Removed: src/org/apache/jmeter/protocol/http/util
SSLStaticProvider.java
Log:
Make only one place for all SSL configuration/management
Revision Changes Path
1.30 +2 -20 jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
Index: HTTPSampler.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- HTTPSampler.java 2001/10/11 12:03:48 1.29
+++ HTTPSampler.java 2001/10/23 17:55:34 1.30
@@ -75,8 +75,8 @@
* HTTP requests, including cookies and authentication.
*
*@author Michael Stover
- *@created $Date: 2001/10/11 12:03:48 $
- *@version $Revision: 1.29 $
+ *@created $Date: 2001/10/23 17:55:34 $
+ *@version $Revision: 1.30 $
*/
public class HTTPSampler implements Sampler
{
@@ -509,24 +509,6 @@
}
in.close();
return w.toString();
- }
-
- static
- {
- if (!JMeterUtils.getPropDefault("ssl.provider", "none").equals("none") &&
- !JMeterUtils.getPropDefault("ssl.pkgs","none").equals("none"))
- {
- try
- {
- Class c = Class.forName("org.apache.jmeter.protocol.http.util.SSLStaticProvider");
- c.newInstance();
- }
- catch (Exception ex)
- {
- System.err.println("Could not find SSL Provider");
- ex.printStackTrace();
- }
- }
}
/**
1.3 +43 -9 jakarta-jmeter/src/org/apache/jmeter/util/SSLManager.java
Index: SSLManager.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/util/SSLManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SSLManager.java 2001/09/05 13:52:55 1.2
+++ SSLManager.java 2001/10/23 17:55:34 1.3
@@ -57,14 +57,9 @@
import java.io.File;
import java.io.FileInputStream;
-import java.security.Principal;
-import java.security.SecureRandom;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
-import java.security.PrivateKey;
-import java.security.Key;
+import java.security.*;
import java.util.ArrayList;
import java.util.Enumeration;
@@ -89,13 +84,15 @@
* make a decision, it will pop open a dialog asking you for more information.
*
* @author <a href="bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Revision: 1.2 $ $Date: 2001/09/05 13:52:55 $
+ * @version CVS $Revision: 1.3 $ $Date: 2001/10/23 17:55:34 $
*/
public class SSLManager {
/** Singleton instance of the manager */
private static SSLManager manager;
/** Cache the SecureRandom instance because it takes a long time to create */
private static SecureRandom rand;
+ private static boolean isIAIKProvider = false;
+ private static Provider sslProvider = null;
/** Cache the KeyStore instance */
private KeyStore keyStore;
@@ -198,9 +195,9 @@
if (null == this.rand) {
this.rand = new SecureRandom();
}
-
+
try {
- this.context = SSLContext.getInstance("TLS");
+ this.context = SSLContext.getInstance("TLS", sslProvider);
KeyManagerFactory managerFactory = KeyManagerFactory.getInstance("SunX509");
KeyStore keys = this.getKeyStore();
managerFactory.init(keys, this.defaultpw.toCharArray());
@@ -386,4 +383,41 @@
return null;
}
}
+
+ // moved from SSLStaticProvider so all SSL specific management is done in one place.
+ static
+ {
+ boolean iaik = false;
+ try {
+ Security.addProvider((Provider)Class.forName(
+ JMeterUtils.getPropDefault(
+ "ssl.provider",null)).newInstance());
+ // register https protocol handler with jsse provider
+ if (JMeterUtils.getPropDefault("ssl.provider", null).equals("iaik.security.jsse.provider.IAIKJSSEProvider")) {
+ iaik = true;
+ } else {
+ iaik = false;
+ }
+ } catch (Exception ssl) {
+ try {
+ Class iaikProvider = SSLManager.class.getClassLoader().loadClass("iaik.security.jsse.provider.IAIKJSSEProvider");
+ sslProvider = (Provider) iaikProvider.newInstance();
+ iaik = true;
+ } catch (Exception e) {
+ try {
+ Class sunProvider = SSLManager.class.getClassLoader().loadClass("com.sun.net.ssl.internal.ssl.Provider");
+ sslProvider = (Provider) sunProvider.newInstance();
+ iaik = false;
+ } catch (Exception noSSL) {
+ throw new RuntimeException("No SSL available!\n" + noSSL.getMessage());
+ }
+ }
+ }
+
+ System.setProperty("java.protocol.handler.pkgs",
+ JMeterUtils.getPropDefault("ssl.pkgs","com.sun.net.ssl.internal.www.protocol"));
+
+ SSLManager.isIAIKProvider = iaik;
+ System.out.println("SSL Provider is: " + SSLManager.sslProvider);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org