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]