From 60f5dfd7eaa64aa931033c0e5266391ecbbc96fa Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Wed, 25 Sep 2013 07:31:13 +0000
Subject: [PATCH] Fix OPENDJ-18 - keystore import failes due to empty PIN Review CR-2353
---
opends/src/quicksetup/org/opends/quicksetup/installer/ui/SecurityOptionsDialog.java | 52 +++++++++++++++++++++++++++++-----------------------
1 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/ui/SecurityOptionsDialog.java b/opends/src/quicksetup/org/opends/quicksetup/installer/ui/SecurityOptionsDialog.java
index 6303404..2301ea1 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/ui/SecurityOptionsDialog.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/ui/SecurityOptionsDialog.java
@@ -23,6 +23,8 @@
*
*
* Copyright 2008-2010 Sun Microsystems, Inc.
+ * Portions Copyright 2013 ForgeRock AS
+
*/
package org.opends.quicksetup.installer.ui;
@@ -63,7 +65,9 @@
import org.opends.quicksetup.util.BackgroundTask;
import org.opends.quicksetup.util.Utils;
import org.opends.server.util.CertificateManager;
+import org.opends.server.util.StaticUtils;
import org.opends.messages.Message;
+
import static org.opends.messages.QuickSetupMessages.*;
/**
@@ -981,15 +985,8 @@
pathValid = errorMsgs.size() == 0;
}
- /* Check the password */
String pwd = String.valueOf(tfKeystorePwd.getPassword());
- if ((pwd == null) || (pwd.length() == 0))
- {
- errorMsgs.add(INFO_KEYSTORE_PWD_EMPTY.get());
- pwdValid = false;
- }
-
- if (pathValid && pwdValid)
+ if (pathValid)
{
try
{
@@ -1058,32 +1055,41 @@
}
catch (KeyStoreException ke)
{
- pwdValid = false;
- if (!rbPKCS11.isSelected())
+ // issue OPENDJ-18, related to JDK bug
+ if (StaticUtils
+ .stackTraceContainsCause(ke, ArithmeticException.class))
{
- pathValid = false;
- }
- // Could not access to the keystore: because the password is no good,
- // because the provided file is not a valid keystore, etc.
- if (rbPKCS11.isSelected())
- {
- errorMsgs.add(INFO_ERROR_ACCESSING_PKCS11_KEYSTORE.get());
+ errorMsgs.add(INFO_ERROR_ACCESSING_KEYSTORE_JDK_BUG.get());
}
else
{
- if (rbJKS.isSelected())
+ pwdValid = false;
+ if (!rbPKCS11.isSelected())
{
- errorMsgs.add(INFO_ERROR_ACCESSING_JKS_KEYSTORE.get());
+ pathValid = false;
}
- else if (rbJCEKS.isSelected())
+ // Could not access to the keystore: because the password is
+ // no good, because the provided file is not a valid keystore, etc.
+ if (rbPKCS11.isSelected())
{
- errorMsgs.add(INFO_ERROR_ACCESSING_JCEKS_KEYSTORE.get());
+ errorMsgs.add(INFO_ERROR_ACCESSING_PKCS11_KEYSTORE.get());
}
else
{
- errorMsgs.add(INFO_ERROR_ACCESSING_PKCS12_KEYSTORE.get());
+ if (rbJKS.isSelected())
+ {
+ errorMsgs.add(INFO_ERROR_ACCESSING_JKS_KEYSTORE.get());
+ }
+ else if (rbJCEKS.isSelected())
+ {
+ errorMsgs.add(INFO_ERROR_ACCESSING_JCEKS_KEYSTORE.get());
+ }
+ else
+ {
+ errorMsgs.add(INFO_ERROR_ACCESSING_PKCS12_KEYSTORE.get());
+ }
+ pathValid = false;
}
- pathValid = false;
}
}
}
--
Gitblit v1.10.0