mirror of https://github.com/apache/jmeter.git
Don't prompt for password if there is no keystore
git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@502792 13f79535-47bb-0310-9956-ffa450edef68
Former-commit-id: ab44c7c84a
This commit is contained in:
parent
8047431534
commit
038d23f3af
|
|
@ -29,7 +29,7 @@
|
||||||
#javax.net.ssl.keyStore=/usr/java/jdk1.5.0_02/jre/lib/security/cacerts
|
#javax.net.ssl.keyStore=/usr/java/jdk1.5.0_02/jre/lib/security/cacerts
|
||||||
|
|
||||||
#The password to your keystore
|
#The password to your keystore
|
||||||
javax.net.ssl.keyStorePassword=changeit
|
#javax.net.ssl.keyStorePassword=changeit
|
||||||
|
|
||||||
# SSL debugging:
|
# SSL debugging:
|
||||||
# See docs/guide/security/jsse/JSSERefGuide.html#Debug in the appropiate JDK docs
|
# See docs/guide/security/jsse/JSSERefGuide.html#Debug in the appropiate JDK docs
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,7 @@ public abstract class SSLManager {
|
||||||
private KeyStore trustStore;
|
private KeyStore trustStore;
|
||||||
|
|
||||||
/** Have the password available */
|
/** Have the password available */
|
||||||
protected String defaultpw = JMeterUtils.getJMeterProperties()
|
protected String defaultpw = System.getProperty(KEY_STORE_PASSWORD);
|
||||||
.getProperty(KEY_STORE_PASSWORD); // $NON-NLS-1$
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resets the SSLManager so that we can create a new one with a new keystore
|
* Resets the SSLManager so that we can create a new one with a new keystore
|
||||||
|
|
@ -97,17 +96,12 @@ public abstract class SSLManager {
|
||||||
* no PasswordEntryField available from JOptionPane.
|
* no PasswordEntryField available from JOptionPane.
|
||||||
*/
|
*/
|
||||||
protected JmeterKeyStore getKeyStore() {
|
protected JmeterKeyStore getKeyStore() {
|
||||||
String password = this.defaultpw;
|
|
||||||
|
|
||||||
if (null == this.keyStore) {
|
if (null == this.keyStore) {
|
||||||
String defaultName = JMeterUtils.getJMeterProperties()
|
String defaultName = JMeterUtils.getJMeterProperties()
|
||||||
.getProperty("user.home") // $NON-NLS-1$
|
.getProperty("user.home") // $NON-NLS-1$
|
||||||
+ File.separator
|
+ File.separator
|
||||||
+ ".keystore"; // $NON-NLS-1$
|
+ ".keystore"; // $NON-NLS-1$
|
||||||
String fileName = JMeterUtils.getJMeterProperties()
|
String fileName = System.getProperty(JAVAX_NET_SSL_KEY_STORE, defaultName);
|
||||||
.getProperty(JAVAX_NET_SSL_KEY_STORE, defaultName);
|
|
||||||
System.setProperty(JAVAX_NET_SSL_KEY_STORE, fileName); // $NON-NLS-1$
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (fileName.endsWith(".p12") || fileName.endsWith(".P12")) { // $NON-NLS-1$ // $NON-NLS-2$
|
if (fileName.endsWith(".p12") || fileName.endsWith(".P12")) { // $NON-NLS-1$ // $NON-NLS-2$
|
||||||
this.keyStore = JmeterKeyStore.getInstance(PKCS12);
|
this.keyStore = JmeterKeyStore.getInstance(PKCS12);
|
||||||
|
|
@ -124,36 +118,17 @@ public abstract class SSLManager {
|
||||||
throw new RuntimeException("KeyStore Problem");
|
throw new RuntimeException("KeyStore Problem");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null == password) {
|
FileInputStream fileInputStream = null;
|
||||||
if (null == defaultpw) {
|
|
||||||
this.defaultpw = JMeterUtils.getJMeterProperties().getProperty(KEY_STORE_PASSWORD);
|
|
||||||
|
|
||||||
if (null == defaultpw) {
|
|
||||||
synchronized (this) {
|
|
||||||
this.defaultpw = JOptionPane.showInputDialog(GuiPackage.getInstance().getMainFrame(),
|
|
||||||
JMeterUtils.getResString("ssl_pass_prompt"), // $NON-NLS-1$
|
|
||||||
JMeterUtils.getResString("ssl_pass_title"), // $NON-NLS-1$
|
|
||||||
JOptionPane.QUESTION_MESSAGE);
|
|
||||||
JMeterUtils.getJMeterProperties().setProperty(KEY_STORE_PASSWORD,
|
|
||||||
this.defaultpw);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
password = this.defaultpw;
|
|
||||||
System.setProperty(KEY_STORE_PASSWORD, password);
|
|
||||||
}
|
|
||||||
|
|
||||||
FileInputStream fileInputStream = null;
|
|
||||||
try {
|
try {
|
||||||
File initStore = new File(fileName);
|
File initStore = new File(fileName);
|
||||||
|
|
||||||
if (initStore.exists()) {
|
if (initStore.exists()) {
|
||||||
fileInputStream = new FileInputStream(initStore);
|
fileInputStream = new FileInputStream(initStore);
|
||||||
this.keyStore.load(fileInputStream, password);
|
this.keyStore.load(fileInputStream, getPassword());
|
||||||
} else {
|
} else {
|
||||||
log.warn("Keystore not found, creating empty keystore");
|
log.warn("Keystore not found, creating empty keystore");
|
||||||
this.keyStore.load(null, password);
|
this.defaultpw = ""; // Ensure not null
|
||||||
|
this.keyStore.load(null, "");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("Problem loading keystore: " +e.getMessage()); // Does not seem to matter much
|
log.warn("Problem loading keystore: " +e.getMessage()); // Does not seem to matter much
|
||||||
|
|
@ -168,6 +143,29 @@ public abstract class SSLManager {
|
||||||
return this.keyStore;
|
return this.keyStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getPassword() {
|
||||||
|
String password = this.defaultpw;
|
||||||
|
if (null == password) {
|
||||||
|
if (null == defaultpw) {
|
||||||
|
this.defaultpw = System.getProperty(KEY_STORE_PASSWORD);
|
||||||
|
|
||||||
|
if (null == defaultpw) {
|
||||||
|
synchronized (this) {
|
||||||
|
this.defaultpw = JOptionPane.showInputDialog(GuiPackage.getInstance().getMainFrame(),
|
||||||
|
JMeterUtils.getResString("ssl_pass_prompt"), // $NON-NLS-1$
|
||||||
|
JMeterUtils.getResString("ssl_pass_title"), // $NON-NLS-1$
|
||||||
|
JOptionPane.QUESTION_MESSAGE);
|
||||||
|
System.setProperty(KEY_STORE_PASSWORD, this.defaultpw);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
password = this.defaultpw;
|
||||||
|
System.setProperty(KEY_STORE_PASSWORD, password);
|
||||||
|
}
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Opens and initializes the TrustStore.
|
* Opens and initializes the TrustStore.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue