Author: sebb
Date: Sun Oct 23 12:20:18 2011
New Revision: 1187876

URL: http://svn.apache.org/viewvc?rev=1187876&view=rev
Log:
Bug 52033 - Allowing multiple certificates (JKS)
Move automatic alias selection code to keystore

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JsseSSLManager.java
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/DefaultKeyStore.java
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/JmeterKeyStore.java

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JsseSSLManager.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JsseSSLManager.java?rev=1187876&r1=1187875&r2=1187876&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JsseSSLManager.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JsseSSLManager.java 
Sun Oct 23 12:20:18 2011
@@ -86,7 +86,7 @@ public class JsseSSLManager extends SSLM
      */
     private SecureRandom rand;
 
-    private Provider pro = null;
+    private Provider pro = null; // TODO why not use the super class value?
 
     private SSLContext defaultContext; // If we are using a single session
     private ThreadLocal<SSLContext> threadlocal; // Otherwise
@@ -279,9 +279,6 @@ public class JsseSSLManager extends SSLM
      */
     private static class WrappedX509KeyManager implements X509KeyManager {
 
-        //@GuardedBy("this")
-        private int last_user;
-
         /**
          * The parent X509KeyManager
          */
@@ -382,27 +379,13 @@ public class JsseSSLManager extends SSLM
          */
         public String chooseClientAlias(String[] keyType, Principal[] issuers, 
Socket socket) {
             log.debug("keyType: " + keyType[0]);
-            int aliasCount = this.store.getAliasCount();
-            String alias = this.store.getAlias(getNextIndex(aliasCount));
+            String alias = this.store.getAlias();
             if (alias == null || alias.length() == 0) {
                 log.debug("ClientAlias not found.");
             }
             return alias;
         }
 
-        private int getNextIndex(int aliasCount) {
-            if (aliasCount == 1) {
-                return 0;
-            }
-            synchronized(this) {
-                last_user ++;
-                if (last_user >= aliasCount) {
-                    last_user = 0;
-                }
-                return last_user;
-            }
-        }
-
         /**
          * Choose the server alias for the SSLServerSockets. This are not used
          * in JMeter.

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/DefaultKeyStore.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/DefaultKeyStore.java?rev=1187876&r1=1187875&r2=1187876&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/DefaultKeyStore.java
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/DefaultKeyStore.java
 Sun Oct 23 12:20:18 2011
@@ -41,6 +41,9 @@ public class DefaultKeyStore extends Jme
 
     private final KeyStore store;
 
+    //@GuardedBy("this")
+    private int last_user;
+
     private static final String KEY_STORE_START_INDEX = 
"https.keyStoreStartIndex"; // $NON-NLS-1$
     private static final String KEY_STORE_END_INDEX   = 
"https.keyStoreEndIndex"; // $NON-NLS-1$
 
@@ -128,6 +131,15 @@ public class DefaultKeyStore extends Jme
     }
 
     @Override
+    public final String getAlias() {
+        int length = this.names.length;
+        if (length == 0) { // i.e. is == null
+            return null;
+        }
+        return this.names[getNextIndex(length)];
+    }
+
+    @Override
     public final String getAlias(int index) {
         int length = this.names.length;
         if (length == 0 && index == 0) { // i.e. is == null
@@ -152,4 +164,15 @@ public class DefaultKeyStore extends Jme
         }
         return -1;
     }
+
+    private int getNextIndex(int length) {
+        synchronized(this) {
+            last_user ++;
+            if (last_user >= length) {
+                last_user = 0;
+            }
+            return last_user;
+        }
+    }
+
 }

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/JmeterKeyStore.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/JmeterKeyStore.java?rev=1187876&r1=1187875&r2=1187876&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/JmeterKeyStore.java
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/keystore/JmeterKeyStore.java
 Sun Oct 23 12:20:18 2011
@@ -38,6 +38,12 @@ public abstract class JmeterKeyStore {
      */
     public abstract X509Certificate[] getCertificateChain(String alias);
 
+    /**
+     * Get the next or only alias.
+     * @return the next or only alias.
+     */
+    public abstract String getAlias();
+
     public abstract int getAliasCount();
 
     public abstract String getAlias(int index);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to