diff options
author | Christina Fu <cfu@redhat.com> | 2014-08-30 15:28:57 -0700 |
---|---|---|
committer | Christina Fu <cfu@redhat.com> | 2014-09-02 15:05:19 -0700 |
commit | e362995b7b63ae3bb4617a59caf9e1a6fefc1492 (patch) | |
tree | e6f5074f11031e22d30b150613001cc6a73f3219 | |
parent | 0507afc6b1226b2878aafde8487eba736c74514f (diff) | |
download | pki-e362995b7b63ae3bb4617a59caf9e1a6fefc1492.tar.gz pki-e362995b7b63ae3bb4617a59caf9e1a6fefc1492.tar.xz pki-e362995b7b63ae3bb4617a59caf9e1a6fefc1492.zip |
ticket #882 unique certID for certificate records
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()); |