summaryrefslogtreecommitdiffstats
path: root/base/java-tools/src/com
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2015-06-13 11:43:40 -0400
committerEndi S. Dewata <edewata@redhat.com>2015-06-16 17:51:27 -0400
commitff4d4f19cad6d2d99003cfb0d7219b82307f15fa (patch)
treeb9dd6f523aa00d8a2ff8f7b08b0fff7cca783b6a /base/java-tools/src/com
parentf5001994ab3947581426c94051bd4c0a88fb6697 (diff)
downloadpki-ff4d4f19cad6d2d99003cfb0d7219b82307f15fa.tar.gz
pki-ff4d4f19cad6d2d99003cfb0d7219b82307f15fa.tar.xz
pki-ff4d4f19cad6d2d99003cfb0d7219b82307f15fa.zip
CRMFPopClient improvements.
The CRMFPopClient has been modified to use the HttpClient library to connect to the server, to show the HTTP status code if an error occurs, and to show the NSS database directory in verbose mode.
Diffstat (limited to 'base/java-tools/src/com')
-rw-r--r--base/java-tools/src/com/netscape/cmstools/CRMFPopClient.java45
1 files changed, 33 insertions, 12 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/CRMFPopClient.java b/base/java-tools/src/com/netscape/cmstools/CRMFPopClient.java
index 81b9c4370..76d8f51d1 100644
--- a/base/java-tools/src/com/netscape/cmstools/CRMFPopClient.java
+++ b/base/java-tools/src/com/netscape/cmstools/CRMFPopClient.java
@@ -21,12 +21,9 @@ import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
-import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.net.URL;
-import java.net.URLConnection;
import java.net.URLEncoder;
import java.security.KeyPair;
import java.security.MessageDigest;
@@ -40,6 +37,11 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.PosixParser;
import org.apache.commons.io.FileUtils;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.util.EntityUtils;
import org.mozilla.jss.CryptoManager;
import org.mozilla.jss.asn1.ASN1Util;
import org.mozilla.jss.asn1.BIT_STRING;
@@ -382,7 +384,7 @@ public class CRMFPopClient {
}
try {
- if (verbose) System.out.println("Initializing security database");
+ if (verbose) System.out.println("Initializing security database: " + databaseDir);
CryptoManager.initialize(databaseDir);
CryptoManager manager = CryptoManager.getInstance();
@@ -717,7 +719,7 @@ public class CRMFPopClient {
String profileID,
String requestor) throws Exception {
- String s = "http://" + hostPort + "/ca/ee/ca/profileSubmit"
+ String url = "http://" + hostPort + "/ca/ee/ca/profileSubmit"
+ "?cert_request_type=crmf"
+ "&cert_request=" + URLEncoder.encode(request, "UTF-8")
+ "&renewal=false"
@@ -726,20 +728,37 @@ public class CRMFPopClient {
+ "&SubId=profile";
if (username != null) {
- s += "&uid=" + URLEncoder.encode(username, "UTF-8");
- s += "&sn_uid=" + URLEncoder.encode(username, "UTF-8");
+ url += "&uid=" + URLEncoder.encode(username, "UTF-8");
+ url += "&sn_uid=" + URLEncoder.encode(username, "UTF-8");
}
if (requestor != null) {
- s += "&requestor_name=" + URLEncoder.encode(requestor, "UTF-8");
+ url += "&requestor_name=" + URLEncoder.encode(requestor, "UTF-8");
}
- URL url = new URL(s);
if (verbose) System.out.println("Opening " + url);
- URLConnection conn = url.openConnection();
- InputStream is = conn.getInputStream();
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+ DefaultHttpClient client = new DefaultHttpClient();
+ HttpGet method = new HttpGet(url);
+ try {
+ HttpResponse response = client.execute(method);
+
+ if (response.getStatusLine().getStatusCode() != 200) {
+ throw new Exception("Error: " + response.getStatusLine());
+ }
+
+ processResponse(response);
+
+ } finally {
+ method.releaseConnection();
+ }
+ }
+
+ public void processResponse(HttpResponse response) throws Exception {
+
+ HttpEntity entity = response.getEntity();
+
+ BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()));
if (verbose) System.out.println("--------------------");
String line = null;
@@ -794,6 +813,8 @@ public class CRMFPopClient {
if (reason != null) {
System.out.println("Reason: " + reason);
}
+
+ EntityUtils.consume(entity);
}
public boolean isEncoded(String elementValue) {