summaryrefslogtreecommitdiffstats
path: root/base/java-tools/src
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2017-03-20 01:21:34 +0100
committerEndi S. Dewata <edewata@redhat.com>2017-03-21 03:19:33 +0100
commit4c6a98d79a02fd0bf6e5da56835e8dd0ce2e7485 (patch)
treeb8b8fcd067df3d6e97f49223ba3a2bb2bd296ee4 /base/java-tools/src
parente25cda67e410d235a934f255c844e8e84ddf6716 (diff)
downloadpki-4c6a98d79a02fd0bf6e5da56835e8dd0ce2e7485.tar.gz
pki-4c6a98d79a02fd0bf6e5da56835e8dd0ce2e7485.tar.xz
pki-4c6a98d79a02fd0bf6e5da56835e8dd0ce2e7485.zip
Allowing pki client-init without NSS database password.
The pki client-init has been modified to support creating NSS database without password.
Diffstat (limited to 'base/java-tools/src')
-rw-r--r--base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java30
1 files changed, 20 insertions, 10 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java b/base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java
index 968539136..893b40b34 100644
--- a/base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java
@@ -23,7 +23,9 @@ import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.io.FileUtils;
@@ -67,10 +69,6 @@ public class ClientInitCLI extends CLI {
MainCLI mainCLI = (MainCLI)parent.getParent();
- if (mainCLI.config.getCertPassword() == null) {
- throw new Exception("Security database password is required.");
- }
-
boolean force = cmd.hasOption("force");
File certDatabase = mainCLI.certDatabase;
@@ -97,16 +95,28 @@ public class ClientInitCLI extends CLI {
File passwordFile = new File(certDatabase, "password.txt");
try {
- try (PrintWriter out = new PrintWriter(new FileWriter(passwordFile))) {
- out.println(mainCLI.config.getCertPassword());
- }
-
String[] commands = {
"/usr/bin/certutil", "-N",
"-d", certDatabase.getAbsolutePath(),
- "-f", passwordFile.getAbsolutePath()
};
+ List<String> list = new ArrayList<>(Arrays.asList(commands));
+
+ if (mainCLI.config.getCertPassword() == null) {
+ list.add("--empty-password");
+
+ } else {
+ try (PrintWriter out = new PrintWriter(new FileWriter(passwordFile))) {
+ out.println(mainCLI.config.getCertPassword());
+ }
+
+ list.add("-f");
+ list.add(passwordFile.getAbsolutePath());
+ }
+
+ commands = new String[list.size()];
+ list.toArray(commands);
+
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(commands);
@@ -119,7 +129,7 @@ public class ClientInitCLI extends CLI {
MainCLI.printMessage("Client initialized");
} finally {
- passwordFile.delete();
+ if (passwordFile.exists()) passwordFile.delete();
}
}
}