Skip to content
Snippets Groups Projects
Commit ceed210a authored by Tobias Dussa's avatar Tobias Dussa
Browse files

Made ListDomains code more resilient, cleaned up a bit, fixed date output

format, added help message.
parent fe91cfe8
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -6,11 +6,11 @@
import de.dfncert.soap.DFNCERTTypesDomainListResult;
import de.dfncert.soap.DFNCERTTypesDomain;
import de.dfncert.soap.DFNCERTDomains;
import de.dfncert.soap.DFNCERTRegistration;
import de.dfncert.tools.DFNPKIClient;
import java.io.*;
import java.util.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.text.SimpleDateFormat;
/**
*
......@@ -32,25 +32,30 @@ public class ListDomains {
private static boolean serverRestricted = false;
private static boolean visible = false;
private static boolean visibleRestricted = false;
private static List<String> newDomains = new ArrayList<String>();
// Global state variables
private static SimpleDateFormat outputDateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
private static DFNPKIClient client;
private static DFNCERTRegistration registration;
private static void usage() {
// Usage printout
System.out.println("Usage:\n" +
"\tListDomains\n" +
"\t <-a|--approved>\n" +
"\t [<-?|--help>] (display this help message)\n" +
"\t [<-a|--approved>] (display approved domains only)\n" +
"\t [<-c|--certificate> <certificate file>] (default: RA-Operator-Cert.p12)\n" +
"\t <-C|--ca> <CA name>\n" +
"\t [-e|--e-mail]\n" +
"\t [-h|--host-only]\n" +
"\t [-i|--invisible]\n" +
"\t [-e|--e-mail] (display e-mail domains only)\n" +
"\t [-h|--host-only] (display FQHN domains only)\n" +
"\t [-i|--invisible] (display invisible domains only)\n" +
"\t [<-p|--passphrase> <passphrase>]\n" +
"\t [<-P|--passphrase-file> <passphrase-file>] (default: RA-Operator-Cert.pw)\n" +
"\t [<-R|--ra> <RA-ID>] (default: 0)\n" +
"\t [-s|--server]\n" +
"\t [-S|--subdomains]\n" +
"\t [-v|--visible]\n" +
"\t [-w|--waiting]\n"
"\t [-s|--server] (display server domains only)\n" +
"\t [-S|--subdomains] (display subdomain-enabled domains only)\n" +
"\t [-v|--visible] (display visible domains only)\n" +
"\t [-w|--waiting] (display non-approved domains only)\n"
);
}
......@@ -59,7 +64,11 @@ public class ListDomains {
// Parse arguments
int ii = 0;
argumentParser: while (ii < args.length) {
if ((args[ii].compareTo("-a") == 0) ||
if ((args[ii].compareTo("-?") == 0) ||
(args[ii].compareTo("--help") == 0)) {
usage();
return;
} else if ((args[ii].compareTo("-a") == 0) ||
(args[ii].compareTo("--approved") == 0)) {
approved = true;
approvedRestricted = true;
......@@ -186,10 +195,8 @@ public class ListDomains {
if (gotPassphrase == 0) {
try {
java.io.Console cons;
if ((cons = System.console()) != null &&
(passphrase = cons.readPassword("[%s] ", "Certificate passphrase:")) != null) {
} else {
passphrase = System.console().readPassword("%s ", "Certificate passphrase:");
if (passphrase == null) {
System.out.println("Error reading password!\n");
return;
}
......@@ -198,17 +205,15 @@ public class ListDomains {
}
}
// Do the actual work
try {
DFNPKIClient client = new DFNPKIClient(CA);
DFNCERTDomains domains = client.getDomains();
DFNCERTTypesDomainListResult domainList;
client = new DFNPKIClient(CA);
client.loadRAFromPKCS12(certificate, passphrase);
final DFNCERTRegistration registration = client.getRegistration();
registration = client.getRegistration();
// Get the domains
domainList = domains.listDomains(RA);
DFNCERTTypesDomainListResult domainList = client.getDomains().listDomains(RA);
for (DFNCERTTypesDomain domain : domainList.getResult()) {
// Apply filters
if (approvedRestricted) {
......@@ -239,7 +244,7 @@ public class ListDomains {
((domain.getType().compareTo("server") == 0) || (domain.getType().compareTo("server-host") == 0) ? "Server" : "E-Mail") + "\t" +
((domain.getType().compareTo("server-host") == 0) || (domain.getType().compareTo("email-host") == 0) ? "FQHN" : "Subdomains") + "\t" +
(domain.isSecret() ? "nicht sichtbar" : "sichtbar") + "\t" +
(domain.isApproved() ? "freigegeben am " + domain.getApprovedDate() : "beantragt"));
(domain.isApproved() ? "freigegeben am " + outputDateformat.format(domain.getApprovedDate()) : "beantragt"));
}
} catch (Exception e) {
e.printStackTrace();
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment