diff options
author | Endi S. Dewata <edewata@redhat.com> | 2015-01-27 00:35:59 -0500 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2015-01-28 14:44:12 -0500 |
commit | 7de81fedeba1a3904c127dc612a937903e622d81 (patch) | |
tree | 47a52fdf47d30fee5d23576ace5985d22e5f05d4 /base/java-tools/src/com/netscape/cmstools/cli | |
parent | 22ff1fbd2de37395e219a7e7362722517a3f4dc3 (diff) | |
download | pki-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.java | 24 |
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); |