summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristina Fu <cfu@redhat.com>2014-08-30 15:28:57 -0700
committerChristina Fu <cfu@redhat.com>2014-09-02 15:05:19 -0700
commite362995b7b63ae3bb4617a59caf9e1a6fefc1492 (patch)
treee6f5074f11031e22d30b150613001cc6a73f3219
parent0507afc6b1226b2878aafde8487eba736c74514f (diff)
downloadpki-e362995b7b63ae3bb4617a59caf9e1a6fefc1492.tar.gz
pki-e362995b7b63ae3bb4617a59caf9e1a6fefc1492.tar.xz
pki-e362995b7b63ae3bb4617a59caf9e1a6fefc1492.zip
ticket #882 unique certID for certificate records
-rw-r--r--base/common/src/org/dogtagpki/tps/main/Util.java36
-rw-r--r--base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java19
-rw-r--r--base/tps-tomcat/src/org/dogtagpki/server/tps/processor/EnrolledCertsInfo.java4
3 files changed, 43 insertions, 16 deletions
diff --git a/base/common/src/org/dogtagpki/tps/main/Util.java b/base/common/src/org/dogtagpki/tps/main/Util.java
index c39b43577..c10262208 100644
--- a/base/common/src/org/dogtagpki/tps/main/Util.java
+++ b/base/common/src/org/dogtagpki/tps/main/Util.java
@@ -25,6 +25,7 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.security.spec.AlgorithmParameterSpec;
+import java.util.Calendar;
import netscape.security.x509.AuthorityKeyIdentifierExtension;
import netscape.security.x509.KeyIdentifier;
@@ -332,4 +333,39 @@ public class Util {
return (CMS.BtoA(kid.getIdentifier()).trim());
}
+ /*
+ * getTimeStampString() gets current time in string format
+ * @param addMicroSeconds true if microseconds wanted in result; false otherwise
+ * @return time stamp in String
+ */
+ public static String getTimeStampString(boolean addMicroSeconds) {
+ Calendar c = Calendar.getInstance();
+ int year = c.get(Calendar.YEAR);
+ int month = c.get(Calendar.MONTH) + 1;
+ int day = c.get(Calendar.DAY_OF_MONTH);
+ int hour = c.get(Calendar.HOUR_OF_DAY);
+ int minute = c.get(Calendar.MINUTE);
+ int second = c.get(Calendar.SECOND);
+
+ String timeString = "";
+ if (addMicroSeconds) {
+ /*
+ * TODO: Java does not support microseconds; Deal with that later
+ */
+ int microSecond = c.get(Calendar.MILLISECOND) * 1000;
+
+ timeString = String.format(
+ "%04d%02d%02d%02d%02d%02d%06d",
+ year, month, day,
+ hour, minute, second, microSecond);
+ } else {
+ timeString = String.format(
+ "%04d%02d%02d%02d%02d%02d",
+ year, month, day,
+ hour, minute, second);
+ }
+
+ return timeString;
+ }
+
}
diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java
index 6c5211c55..9b4a4b28d 100644
--- a/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java
+++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java
@@ -22,6 +22,7 @@ import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang.StringUtils;
+import org.dogtagpki.tps.main.Util;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.dbs.IDBSubsystem;
@@ -51,22 +52,12 @@ public class ActivityDatabase extends LDAPDatabase<ActivityRecord> {
public ActivityRecord log(
String ip, String tokenID, String operation, String result,
String message, String userID, String tokenType) throws Exception {
-
Calendar c = Calendar.getInstance();
- int year = c.get(Calendar.YEAR);
- int month = c.get(Calendar.MONTH) + 1;
- int day = c.get(Calendar.DAY_OF_MONTH);
- int hour = c.get(Calendar.HOUR_OF_DAY);
- int minute = c.get(Calendar.MINUTE);
- int second = c.get(Calendar.SECOND);
- int microSecond = c.get(Calendar.MILLISECOND) * 1000;
- long threadID = Thread.currentThread().getId();
- String id = String.format(
- "%04d%02d%02d%02d%02d%02d%06d.%x",
- year, month, day,
- hour, minute, second, microSecond,
- threadID);
+ String timeString = Util.getTimeStampString(true);
+ long threadID = Thread.currentThread().getId();
+ String threadIDS = String.format("%x", threadID);
+ String id = timeString + "." + threadIDS;
ActivityRecord activityRecord = new ActivityRecord();
activityRecord.setId(id);
diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/processor/EnrolledCertsInfo.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/processor/EnrolledCertsInfo.java
index 8a85b1a62..87b86f7d7 100644
--- a/base/tps-tomcat/src/org/dogtagpki/server/tps/processor/EnrolledCertsInfo.java
+++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/processor/EnrolledCertsInfo.java
@@ -169,8 +169,8 @@ public class EnrolledCertsInfo {
String serialNumber = "0x" + hexSerial;
certRecord.setSerialNumber(serialNumber);
- //id - TODO - calculate the real id later
- String id = serialNumber+":"+uid;
+ String uniqueString = Util.getTimeStampString(false);
+ String id = hexSerial + "." + uniqueString;
certRecord.setId(id);
CMS.debug("EnrolledCertsInfo.toTPSCertRecords: converting cert:"+ certRecord.getId());