summaryrefslogtreecommitdiffstats
path: root/base/java-tools/src/com/netscape/cmstools/cli
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2015-01-27 00:35:59 -0500
committerEndi S. Dewata <edewata@redhat.com>2015-01-28 14:44:12 -0500
commit7de81fedeba1a3904c127dc612a937903e622d81 (patch)
tree47a52fdf47d30fee5d23576ace5985d22e5f05d4 /base/java-tools/src/com/netscape/cmstools/cli
parent22ff1fbd2de37395e219a7e7362722517a3f4dc3 (diff)
downloadpki-7de81fedeba1a3904c127dc612a937903e622d81.tar.gz
pki-7de81fedeba1a3904c127dc612a937903e622d81.tar.xz
pki-7de81fedeba1a3904c127dc612a937903e622d81.zip
Refactored CRMFPopClient.
The CRMFPopClient has been refactored such that it is easier to understand and reuse. The code has been fixed such that it can read a normal PEM transport certificate. It also has been fixed to parse the request submission result properly. The client-cert-request CLI command was modified to support CRMF requests. The MainCLI and ClientConfig were modified to accept a security token name. The pki_java_command_wrapper.in was modified to include the Apache Commons IO library. https://fedorahosted.org/pki/ticket/1074
Diffstat (limited to 'base/java-tools/src/com/netscape/cmstools/cli')
-rw-r--r--base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java b/base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java
index 8c3805e00..1dbf02760 100644
--- a/base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java
@@ -168,6 +168,10 @@ public class MainCLI extends CLI {
option.setArgName("passwordfile");
options.addOption(option);
+ option = new Option(null, "token", true, "Security token name");
+ option.setArgName("token");
+ options.addOption(option);
+
option = new Option(null, "output", true, "Folder to store HTTP messages");
option.setArgName("folder");
options.addOption(option);
@@ -286,6 +290,8 @@ public class MainCLI extends CLI {
String certNickname = cmd.getOptionValue("n");
String certPassword = cmd.getOptionValue("c");
String certPasswordFile = cmd.getOptionValue("C");
+ String tokenName = cmd.getOptionValue("token");
+
String username = cmd.getOptionValue("u");
String password = cmd.getOptionValue("w");
String passwordFile = cmd.getOptionValue("W");
@@ -323,6 +329,9 @@ public class MainCLI extends CLI {
if (certDatabase != null)
config.setCertDatabase(new File(certDatabase).getAbsolutePath());
+ // store token name
+ config.setTokenName(tokenName);
+
// store certificate nickname
config.setCertNickname(certNickname);
@@ -420,14 +429,25 @@ public class MainCLI extends CLI {
// Main program should initialize client security database
if (certDatabase.exists()) {
+ if (verbose) System.out.println("Initializing client security database");
CryptoManager.initialize(certDatabase.getAbsolutePath());
}
- // If password is specified, use password to access client security database
+ // If password is specified, use password to access security token
if (config.getCertPassword() != null) {
+ if (verbose) System.out.println("Logging into security token");
try {
CryptoManager manager = CryptoManager.getInstance();
- CryptoToken token = manager.getInternalKeyStorageToken();
+
+ CryptoToken token;
+ String tokenName = config.getTokenName();
+ if (tokenName == null) {
+ token = manager.getInternalKeyStorageToken();
+ } else {
+ token = manager.getTokenByName(tokenName);
+ }
+ manager.setThreadToken(token);
+
Password password = new Password(config.getCertPassword().toCharArray());
token.login(password);