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