diff options
Diffstat (limited to 'base/tps/src/org/dogtagpki/server/tps/dbs')
6 files changed, 1037 insertions, 0 deletions
diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java b/base/tps/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java new file mode 100644 index 000000000..9b4a4b28d --- /dev/null +++ b/base/tps/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java @@ -0,0 +1,100 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2013 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- + +package org.dogtagpki.server.tps.dbs; + +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; +import com.netscape.cmscore.dbs.LDAPDatabase; +import com.netscape.cmsutil.ldap.LDAPUtil; + +/** + * This class implements in-memory activity database. In the future this + * will be replaced with LDAP database. + * + * @author Endi S. Dewata + */ +public class ActivityDatabase extends LDAPDatabase<ActivityRecord> { + public final static String OP_DO_TOKEN = "do_token"; + public final static String OP_ADD = "add"; // add a token + public final static String OP_DELETE = "delete"; // delete a token + //public final static String OP_MODIFY_AUDIT_SIGNING = "modify_audit_signing"; + public final static String OP_ENROLLMENT = "enrollment"; + public final static String OP_RENEWAL = "renewal"; + public final static String OP_PIN_RESET = "pin_reset"; + public final static String OP_FORMAT = "format"; + + public ActivityDatabase(IDBSubsystem dbSubsystem, String baseDN) throws EBaseException { + super("Activity", dbSubsystem, baseDN, ActivityRecord.class); + } + + public ActivityRecord log( + String ip, String tokenID, String operation, String result, + String message, String userID, String tokenType) throws Exception { + Calendar c = Calendar.getInstance(); + + 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); + activityRecord.setIP(ip); + activityRecord.setTokenID(tokenID); + activityRecord.setOperation(operation); + activityRecord.setResult(result); + activityRecord.setMessage(message); + activityRecord.setUserID(userID); + activityRecord.setType(tokenType); + activityRecord.setDate(c.getTime()); + + super.addRecord(id, activityRecord); + + return activityRecord; + } + + @Override + public void addRecord(String id, ActivityRecord activityRecord) throws Exception { + activityRecord.setDate(new Date()); + + super.addRecord(id, activityRecord); + } + + @Override + public String createDN(String id) { + return "cn=" + id + "," + baseDN; + } + + @Override + public String createFilter(String filter) { + + if (StringUtils.isEmpty(filter)) { + return "(id=*)"; + } + + filter = LDAPUtil.escapeFilter(filter); + return "(|(tokenID=*" + filter + "*)(userID=*" + filter + "*))"; + } +} diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/ActivityRecord.java b/base/tps/src/org/dogtagpki/server/tps/dbs/ActivityRecord.java new file mode 100644 index 000000000..fe5b1f91c --- /dev/null +++ b/base/tps/src/org/dogtagpki/server/tps/dbs/ActivityRecord.java @@ -0,0 +1,214 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2013 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- + +package org.dogtagpki.server.tps.dbs; + +import java.util.Date; + +import com.netscape.cmscore.dbs.DBAttribute; +import com.netscape.cmscore.dbs.DBObjectClasses; +import com.netscape.cmscore.dbs.DBRecord; + +/** + * @author Endi S. Dewata + */ +@DBObjectClasses({ "top", "tokenActivity" }) +public class ActivityRecord extends DBRecord { + + private static final long serialVersionUID = 1L; + + String id; + String tokenID; + String userID; + String ip; + String operation; + String result; + String message; + String extensions; + String type; + Date date; + + @DBAttribute("cn") + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @DBAttribute("tokenID") + public String getTokenID() { + return tokenID; + } + + public void setTokenID(String tokenID) { + this.tokenID = tokenID; + } + + @DBAttribute("tokenUserID") + public String getUserID() { + return userID; + } + + public void setUserID(String userID) { + this.userID = userID; + } + + @DBAttribute("tokenIP") + public String getIP() { + return ip; + } + + public void setIP(String ip) { + this.ip = ip; + } + + @DBAttribute("tokenOp") + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation; + } + + @DBAttribute("tokenResult") + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } + + @DBAttribute("tokenMsg") + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @DBAttribute("extensions") + public String getExtensions() { + return extensions; + } + + public void setExtensions(String extensions) { + this.extensions = extensions; + } + + @DBAttribute("tokenType") + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @DBAttribute("dateOfCreate") + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((date == null) ? 0 : date.hashCode()); + result = prime * result + ((extensions == null) ? 0 : extensions.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((ip == null) ? 0 : ip.hashCode()); + result = prime * result + ((message == null) ? 0 : message.hashCode()); + result = prime * result + ((operation == null) ? 0 : operation.hashCode()); + result = prime * result + ((this.result == null) ? 0 : this.result.hashCode()); + result = prime * result + ((tokenID == null) ? 0 : tokenID.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + result = prime * result + ((userID == null) ? 0 : userID.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ActivityRecord other = (ActivityRecord) obj; + if (date == null) { + if (other.date != null) + return false; + } else if (!date.equals(other.date)) + return false; + if (extensions == null) { + if (other.extensions != null) + return false; + } else if (!extensions.equals(other.extensions)) + return false; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (ip == null) { + if (other.ip != null) + return false; + } else if (!ip.equals(other.ip)) + return false; + if (message == null) { + if (other.message != null) + return false; + } else if (!message.equals(other.message)) + return false; + if (operation == null) { + if (other.operation != null) + return false; + } else if (!operation.equals(other.operation)) + return false; + if (result == null) { + if (other.result != null) + return false; + } else if (!result.equals(other.result)) + return false; + if (tokenID == null) { + if (other.tokenID != null) + return false; + } else if (!tokenID.equals(other.tokenID)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + if (userID == null) { + if (other.userID != null) + return false; + } else if (!userID.equals(other.userID)) + return false; + return true; + } +} diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java b/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java new file mode 100644 index 000000000..7450b0665 --- /dev/null +++ b/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java @@ -0,0 +1,71 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2013 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- + +package org.dogtagpki.server.tps.dbs; + +import java.util.Date; + +import org.apache.commons.lang.StringUtils; + +import com.netscape.certsrv.base.EBaseException; +import com.netscape.certsrv.dbs.IDBSubsystem; +import com.netscape.cmscore.dbs.LDAPDatabase; +import com.netscape.cmsutil.ldap.LDAPUtil; + +/** + * This class implements in-memory activity database. In the future this + * will be replaced with LDAP database. + * + * @author Endi S. Dewata + */ +public class TPSCertDatabase extends LDAPDatabase<TPSCertRecord> { + + public TPSCertDatabase(IDBSubsystem dbSubsystem, String baseDN) throws EBaseException { + super("Certificate", dbSubsystem, baseDN, TPSCertRecord.class); + } + + @Override + public void addRecord(String id, TPSCertRecord certRecord) throws Exception { + certRecord.setCreateTime(new Date()); + + super.addRecord(id, certRecord); + } + + @Override + public void updateRecord(String id, TPSCertRecord certRecord) throws Exception { + certRecord.setModifyTime(new Date()); + + super.updateRecord(id, certRecord); + } + + @Override + public String createDN(String id) { + return "cn=" + id + "," + baseDN; + } + + @Override + public String createFilter(String filter) { + + if (StringUtils.isEmpty(filter)) { + return "(id=*)"; + } + + filter = LDAPUtil.escapeFilter(filter); + return "(|(id=*" + filter + "*)(tokenID=*" + filter + "*)(userID=*" + filter + "*))"; + } +} diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertRecord.java b/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertRecord.java new file mode 100644 index 000000000..288f25f53 --- /dev/null +++ b/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertRecord.java @@ -0,0 +1,313 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2013 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- + +package org.dogtagpki.server.tps.dbs; + +import java.util.Date; + +import com.netscape.cmscore.dbs.DBAttribute; +import com.netscape.cmscore.dbs.DBObjectClasses; +import com.netscape.cmscore.dbs.DBRecord; + +/** + * @author Endi S. Dewata + */ +@DBObjectClasses({ "top", "tokenCert" }) +public class TPSCertRecord extends DBRecord { + + private static final long serialVersionUID = 1L; + + String id; + String serialNumber; + String subject; + String tokenID; + String keyType; + String status; + String userID; + String certificate; + String issuedBy; + String origin; + String type; + Date validNotBefore; + Date validNotAfter; + String extensions; + Date createTime; + Date modifyTime; + + @DBAttribute("cn") + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + // the serial number is in HEX + @DBAttribute("tokenSerial") + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + + @DBAttribute("tokenSubject") + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + @DBAttribute("tokenID") + public String getTokenID() { + return tokenID; + } + + public void setTokenID(String tokenID) { + this.tokenID = tokenID; + } + + @DBAttribute("tokenKeyType") + public String getKeyType() { + return keyType; + } + + public void setKeyType(String keyType) { + this.keyType = keyType; + } + + @DBAttribute("tokenStatus") + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + @DBAttribute("tokenUserID") + public String getUserID() { + return userID; + } + + public void setUserID(String userID) { + this.userID = userID; + } + + @DBAttribute("userCertificate") + // Alternative to the actual certificate -- certificate AKI + public String getCertificate() { + return certificate; + } + + // Alternative to the actual certificate -- certificate AKI + public void setCertificate(String certificate) { + this.certificate = certificate; + } + + @DBAttribute("tokenIssuer") + public String getIssuedBy() { + return issuedBy; + } + + public void setIssuedBy(String issuedBy) { + this.issuedBy = issuedBy; + } + + @DBAttribute("tokenOrigin") + public String getOrigin() { + return origin; + } + + public void setOrigin(String origin) { + this.origin = origin; + } + + @DBAttribute("tokenType") + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @DBAttribute("tokenNotBefore") + public Date getValidNotBefore() { + return validNotBefore; + } + + public void setValidNotBefore(Date validNotBefore) { + this.validNotBefore = validNotBefore; + } + + @DBAttribute("tokenNotAfter") + public Date getValidNotAfter() { + return validNotAfter; + } + + public void setValidNotAfter(Date validNotAfter) { + this.validNotAfter = validNotAfter; + } + + @DBAttribute("extensions") + public String getExtensions() { + return extensions; + } + + public void setExtensions(String extensions) { + this.extensions = extensions; + } + + @DBAttribute("dateOfCreate") + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + @DBAttribute("dateOfModify") + public Date getModifyTime() { + return modifyTime; + } + + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((certificate == null) ? 0 : certificate.hashCode()); + result = prime * result + ((createTime == null) ? 0 : createTime.hashCode()); + result = prime * result + ((extensions == null) ? 0 : extensions.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((issuedBy == null) ? 0 : issuedBy.hashCode()); + result = prime * result + ((keyType == null) ? 0 : keyType.hashCode()); + result = prime * result + ((modifyTime == null) ? 0 : modifyTime.hashCode()); + result = prime * result + ((origin == null) ? 0 : origin.hashCode()); + result = prime * result + ((serialNumber == null) ? 0 : serialNumber.hashCode()); + result = prime * result + ((status == null) ? 0 : status.hashCode()); + result = prime * result + ((subject == null) ? 0 : subject.hashCode()); + result = prime * result + ((tokenID == null) ? 0 : tokenID.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + result = prime * result + ((userID == null) ? 0 : userID.hashCode()); + result = prime * result + ((validNotAfter == null) ? 0 : validNotAfter.hashCode()); + result = prime * result + ((validNotBefore == null) ? 0 : validNotBefore.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + TPSCertRecord other = (TPSCertRecord) obj; + if (certificate == null) { + if (other.certificate != null) + return false; + } else if (!certificate.equals(other.certificate)) + return false; + if (createTime == null) { + if (other.createTime != null) + return false; + } else if (!createTime.equals(other.createTime)) + return false; + if (extensions == null) { + if (other.extensions != null) + return false; + } else if (!extensions.equals(other.extensions)) + return false; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (issuedBy == null) { + if (other.issuedBy != null) + return false; + } else if (!issuedBy.equals(other.issuedBy)) + return false; + if (keyType == null) { + if (other.keyType != null) + return false; + } else if (!keyType.equals(other.keyType)) + return false; + if (modifyTime == null) { + if (other.modifyTime != null) + return false; + } else if (!modifyTime.equals(other.modifyTime)) + return false; + if (origin == null) { + if (other.origin != null) + return false; + } else if (!origin.equals(other.origin)) + return false; + if (serialNumber == null) { + if (other.serialNumber != null) + return false; + } else if (!serialNumber.equals(other.serialNumber)) + return false; + if (status == null) { + if (other.status != null) + return false; + } else if (!status.equals(other.status)) + return false; + if (subject == null) { + if (other.subject != null) + return false; + } else if (!subject.equals(other.subject)) + return false; + if (tokenID == null) { + if (other.tokenID != null) + return false; + } else if (!tokenID.equals(other.tokenID)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + if (userID == null) { + if (other.userID != null) + return false; + } else if (!userID.equals(other.userID)) + return false; + if (validNotAfter == null) { + if (other.validNotAfter != null) + return false; + } else if (!validNotAfter.equals(other.validNotAfter)) + return false; + if (validNotBefore == null) { + if (other.validNotBefore != null) + return false; + } else if (!validNotBefore.equals(other.validNotBefore)) + return false; + return true; + } +} diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java new file mode 100644 index 000000000..f86c6e203 --- /dev/null +++ b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java @@ -0,0 +1,68 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2013 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- + +package org.dogtagpki.server.tps.dbs; + +import java.util.Date; + +import org.apache.commons.lang.StringUtils; + +import com.netscape.certsrv.base.EBaseException; +import com.netscape.certsrv.dbs.IDBSubsystem; +import com.netscape.cmscore.dbs.LDAPDatabase; +import com.netscape.cmsutil.ldap.LDAPUtil; + +/** + * @author Endi S. Dewata + */ +public class TokenDatabase extends LDAPDatabase<TokenRecord> { + + public TokenDatabase(IDBSubsystem dbSubsystem, String baseDN) throws EBaseException { + super("Token", dbSubsystem, baseDN, TokenRecord.class); + } + + @Override + public void addRecord(String id, TokenRecord tokenRecord) throws Exception { + tokenRecord.setCreateTimestamp(new Date()); + + super.addRecord(id, tokenRecord); + } + + @Override + public void updateRecord(String id, TokenRecord tokenRecord) throws Exception { + tokenRecord.setModifyTimestamp(new Date()); + + super.updateRecord(id, tokenRecord); + } + + @Override + public String createDN(String id) { + return "cn=" + id + "," + baseDN; + } + + @Override + public String createFilter(String filter) { + + if (StringUtils.isEmpty(filter)) { + return "(id=*)"; + } + + filter = LDAPUtil.escapeFilter(filter); + return "(|(id=*" + filter + "*)(userID=*" + filter + "*))"; + } +} diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java new file mode 100644 index 000000000..a1aef5720 --- /dev/null +++ b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java @@ -0,0 +1,271 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2013 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- + +package org.dogtagpki.server.tps.dbs; + +import java.util.Date; + +import com.netscape.certsrv.tps.token.TokenStatus; +import com.netscape.cmscore.dbs.DBAttribute; +import com.netscape.cmscore.dbs.DBObjectClasses; +import com.netscape.cmscore.dbs.DBRecord; + +/** + * @author Endi S. Dewata + */ +@DBObjectClasses({ "top", "tokenRecord" }) +public class TokenRecord extends DBRecord { + + private static final long serialVersionUID = 1L; + + /** + * objectClasses: ( tokenRecord-oid + * NAME 'tokenRecord' + * DESC 'CMS defined class' + * SUP top + * STRUCTURAL + * MUST cn + * MAY ( + * dateOfCreate $ + * dateOfModify $ + * modified $ (unused) + * tokenReason $ + * tokenUserID $ + * tokenStatus $ + * tokenAppletID $ + * keyInfo $ + * tokenPolicy $ + * extensions $ (unused) + * numberOfResets $ (unused) + * numberOfEnrollments $ (unused) + * numberOfRenewals $ (unused) + * numberOfRecoveries $ (unused) + * userCertificate $ (unused) + * tokenType ) + * X-ORIGIN 'user defined' ) + */ + String id; + String userID; + String type; + String status; + String reason; + String appletID; + String keyInfo; + String policy; + Date createTimestamp; + Date modifyTimestamp; + + @DBAttribute("cn") + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @DBAttribute("tokenUserID") + public String getUserID() { + return userID; + } + + public void setUserID(String userID) { + this.userID = userID; + } + + @DBAttribute("tokenType") + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @DBAttribute("tokenStatus") + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + @DBAttribute("tokenReason") + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + @DBAttribute("tokenAppletID") + public String getAppletID() { + return appletID; + } + + public void setAppletID(String appletID) { + this.appletID = appletID; + } + + @DBAttribute("keyInfo") + public String getKeyInfo() { + return keyInfo; + } + + public void setKeyInfo(String keyInfo) { + this.keyInfo = keyInfo; + } + + @DBAttribute("tokenPolicy") + public String getPolicy() { + return policy; + } + + public void setPolicy(String policy) { + this.policy = policy; + } + + @DBAttribute("dateOfCreate") + public Date getCreateTimestamp() { + return createTimestamp; + } + + public void setCreateTimestamp(Date createTimestamp) { + this.createTimestamp = createTimestamp; + } + + @DBAttribute("dateOfModify") + public Date getModifyTimestamp() { + return modifyTimestamp; + } + + public void setModifyTimestamp(Date modifyTimestamp) { + this.modifyTimestamp = modifyTimestamp; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appletID == null) ? 0 : appletID.hashCode()); + result = prime * result + ((createTimestamp == null) ? 0 : createTimestamp.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((keyInfo == null) ? 0 : keyInfo.hashCode()); + result = prime * result + ((modifyTimestamp == null) ? 0 : modifyTimestamp.hashCode()); + result = prime * result + ((policy == null) ? 0 : policy.hashCode()); + result = prime * result + ((reason == null) ? 0 : reason.hashCode()); + result = prime * result + ((status == null) ? 0 : status.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + result = prime * result + ((userID == null) ? 0 : userID.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + TokenRecord other = (TokenRecord) obj; + if (appletID == null) { + if (other.appletID != null) + return false; + } else if (!appletID.equals(other.appletID)) + return false; + if (createTimestamp == null) { + if (other.createTimestamp != null) + return false; + } else if (!createTimestamp.equals(other.createTimestamp)) + return false; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (keyInfo == null) { + if (other.keyInfo != null) + return false; + } else if (!keyInfo.equals(other.keyInfo)) + return false; + if (modifyTimestamp == null) { + if (other.modifyTimestamp != null) + return false; + } else if (!modifyTimestamp.equals(other.modifyTimestamp)) + return false; + if (policy == null) { + if (other.policy != null) + return false; + } else if (!policy.equals(other.policy)) + return false; + if (reason == null) { + if (other.reason != null) + return false; + } else if (!reason.equals(other.reason)) + return false; + if (status == null) { + if (other.status != null) + return false; + } else if (!status.equals(other.status)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + if (userID == null) { + if (other.userID != null) + return false; + } else if (!userID.equals(other.userID)) + return false; + return true; + } + + public TokenStatus getTokenStatus() { + String status = getStatus(); + + if ("uninitialized".equals(status)) { + return TokenStatus.UNINITIALIZED; + + } else if ("active".equals(status)) { + return TokenStatus.ACTIVE; + + } else if ("lost".equals(status)) { + String reason = getReason(); + + if ("keyCompromise".equals(reason)) { + return TokenStatus.PERM_LOST; + + } else if ("destroyed".equals(reason)) { + return TokenStatus.DAMAGED; + + } else if ("onHold".equals(reason)) { + return TokenStatus.TEMP_LOST; + } + + } else if ("terminated".equals(status)) { + return TokenStatus.TERMINATED; + } + + return TokenStatus.PERM_LOST; + } + +} |