diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-08-18 02:30:44 -0500 |
---|---|---|
committer | Endi Sukma Dewata <edewata@redhat.com> | 2012-08-29 23:42:53 -0500 |
commit | 60835ed008586f85a22737d0161cb026f2dbffec (patch) | |
tree | 363e447f38aa7bfe9835955e7f1f7345228c14ff /base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java | |
parent | 88176c5c8caf146a1a408dc3a7f6b23e1a8e63b7 (diff) | |
download | pki-60835ed008586f85a22737d0161cb026f2dbffec.tar.gz pki-60835ed008586f85a22737d0161cb026f2dbffec.tar.xz pki-60835ed008586f85a22737d0161cb026f2dbffec.zip |
Moved REST CLI into pki-tools.
The pki-client.jar has been split and merged into pki-certsrv.jar
and pki-tools.jar. The REST client classes are now packaged in
com.netscape.certsrv.<component> packages. The REST CLI classes
are now packaged in com.netscape.cmstools.<component> packages.
The "pki" script has been moved into pki-tools RPM package.
Ticket #215
Diffstat (limited to 'base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java')
-rw-r--r-- | base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java new file mode 100644 index 000000000..3562d48f0 --- /dev/null +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java @@ -0,0 +1,85 @@ +package com.netscape.cmstools.cert; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.Collection; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.ParseException; + +import com.netscape.certsrv.cert.CertEnrollmentRequest; +import com.netscape.certsrv.cert.CertRequestInfo; +import com.netscape.certsrv.cert.CertRequestInfos; +import com.netscape.cmstools.cli.CLI; +import com.netscape.cmstools.cli.MainCLI; + +public class CertRequestSubmitCLI extends CLI { + + CertCLI parent; + + public CertRequestSubmitCLI(CertCLI parent) { + super("request-submit", "Submit certificate request"); + this.parent = parent; + } + + @Override + public void execute(String[] args) { + CommandLine cmd = null; + + try { + cmd = parser.parse(options, args); + } catch (ParseException e) { + System.err.println("Error: " + e.getMessage()); + printHelp(); + System.exit(-1); + } + + String[] cLineArgs = cmd.getArgs(); + + if (cLineArgs.length < 1) { + System.err.println("Error: No filename specified."); + printHelp(); + System.exit(-1); + } + + CertEnrollmentRequest erd = null; + + try { + erd = getEnrollmentRequest(cLineArgs[0]); + CertRequestInfos cri = parent.client.enrollRequest(erd); + MainCLI.printMessage("Submitted certificate request"); + printRequestInformation(cri); + } catch (FileNotFoundException e) { + System.err.println("Error: " + e.getMessage()); + System.exit(-1); + } catch (JAXBException e) { + System.err.println("Error: " + e.getMessage()); + System.exit(-1); + } + } + + private CertEnrollmentRequest getEnrollmentRequest(String fileName) throws JAXBException, FileNotFoundException { + CertEnrollmentRequest erd = null; + JAXBContext context = JAXBContext.newInstance(CertEnrollmentRequest.class); + Unmarshaller unmarshaller = context.createUnmarshaller(); + FileInputStream fis = new FileInputStream(fileName); + erd = (CertEnrollmentRequest) unmarshaller.unmarshal(fis); + return erd; + } + + private void printRequestInformation(CertRequestInfos cri) { + Collection<CertRequestInfo> allRequests = cri.getRequests(); + for (CertRequestInfo x : allRequests) { + CertCLI.printCertRequestInfo(x); + } + System.out.println(); + } + + public void printHelp() { + formatter.printHelp(parent.name + "-" + name + " <filename>", options); + } +} |