summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2013-09-12 14:30:13 -0400
committerEndi S. Dewata <edewata@redhat.com>2013-09-17 14:37:34 -0400
commit848887dd45e69f38edfada28a986e29eec804d54 (patch)
tree54695beeeece5f4f1115caf595b6f3a1e56da252 /base
parent3567f557307606c5f09496469a92f6972f5d5750 (diff)
downloadpki-848887dd45e69f38edfada28a986e29eec804d54.tar.gz
pki-848887dd45e69f38edfada28a986e29eec804d54.tar.xz
pki-848887dd45e69f38edfada28a986e29eec804d54.zip
Connected token database to LDAP.
The TokenDatabase has been reimplemented using LDAPDatabase. The TokenRecord has been modified to specify the object class and attribute mappings. Ticket #652
Diffstat (limited to 'base')
-rw-r--r--base/tps-tomcat/src/org/dogtagpki/server/tps/TPSSubsystem.java10
-rw-r--r--base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenDatabase.java51
-rw-r--r--base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenRecord.java21
-rw-r--r--base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java10
4 files changed, 54 insertions, 38 deletions
diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/TPSSubsystem.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/TPSSubsystem.java
index 34edc58f4..853e970c1 100644
--- a/base/tps-tomcat/src/org/dogtagpki/server/tps/TPSSubsystem.java
+++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/TPSSubsystem.java
@@ -32,9 +32,11 @@ import com.netscape.certsrv.authority.IAuthority;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.base.IConfigStore;
import com.netscape.certsrv.base.ISubsystem;
+import com.netscape.certsrv.dbs.IDBSubsystem;
import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.request.IRequestListener;
import com.netscape.certsrv.request.IRequestQueue;
+import com.netscape.cmscore.dbs.DBSubsystem;
/**
* @author Endi S. Dewata <edewata@redhat.com>
@@ -54,7 +56,7 @@ public class TPSSubsystem implements IAuthority, ISubsystem {
public AuthenticatorDatabase authenticatorDatabase = new AuthenticatorDatabase();
public ConnectionDatabase connectionDatabase = new ConnectionDatabase();
public TPSCertDatabase certDatabase = new TPSCertDatabase();
- public TokenDatabase tokenDatabase = new TokenDatabase();
+ public TokenDatabase tokenDatabase;
@Override
public String getId() {
@@ -70,6 +72,12 @@ public class TPSSubsystem implements IAuthority, ISubsystem {
public void init(ISubsystem owner, IConfigStore config) throws EBaseException {
this.owner = owner;
this.config = config;
+
+ IDBSubsystem dbSubsystem = DBSubsystem.getInstance();
+ IConfigStore cs = CMS.getConfigStore();
+
+ String tokenDatabaseDN = cs.getString("tokendb.baseDN");
+ tokenDatabase = new TokenDatabase(dbSubsystem, tokenDatabaseDN);
}
@Override
diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenDatabase.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenDatabase.java
index a4c8e34c5..d16e4fc25 100644
--- a/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenDatabase.java
+++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenDatabase.java
@@ -20,48 +20,41 @@ package org.dogtagpki.server.tps.token;
import java.util.Date;
-import com.netscape.cmscore.dbs.Database;
+import com.netscape.certsrv.base.EBaseException;
+import com.netscape.certsrv.dbs.IDBSubsystem;
+import com.netscape.cmscore.dbs.LDAPDatabase;
/**
- * This class implements in-memory token database. In the future this
- * will be replaced with LDAP database.
- *
* @author Endi S. Dewata
*/
-public class TokenDatabase extends Database<TokenRecord> {
+public class TokenDatabase extends LDAPDatabase<TokenRecord> {
- public TokenDatabase() {
- super("Token");
-
- // add sample records
- try {
- TokenRecord record1 = new TokenRecord();
- record1.setID("token1");
- record1.setUserID("user1");
- record1.setStatus("ENABLED");
- addRecord(record1);
-
- TokenRecord record2 = new TokenRecord();
- record2.setID("token2");
- record2.setUserID("user2");
- record2.setStatus("DISABLED");
- addRecord(record2);
-
- } catch (Exception e) {
- e.printStackTrace();
- }
+ public TokenDatabase(IDBSubsystem dbSubsystem, String baseDN) throws EBaseException {
+ super("Token", dbSubsystem, baseDN, TokenRecord.class);
}
- public void addRecord(TokenRecord tokenRecord) throws Exception {
+ @Override
+ public void addRecord(String id, TokenRecord tokenRecord) throws Exception {
tokenRecord.setStatus("ENABLED");
tokenRecord.setCreateTimestamp(new Date());
- addRecord(tokenRecord.getID(), tokenRecord);
+ super.addRecord(id, tokenRecord);
}
- public void updateRecord(TokenRecord tokenRecord) throws Exception {
+ @Override
+ public void updateRecord(String id, TokenRecord tokenRecord) throws Exception {
tokenRecord.setModifyTimestamp(new Date());
- updateRecord(tokenRecord.getID(), tokenRecord);
+ super.updateRecord(id, tokenRecord);
+ }
+
+ @Override
+ public String createDN(String id) {
+ return "cn=" + id + "," + baseDN;
+ }
+
+ @Override
+ public String createFilter(String filter) {
+ return "(id=*)";
}
}
diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenRecord.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenRecord.java
index ff3af5776..bf0d1b120 100644
--- a/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenRecord.java
+++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenRecord.java
@@ -20,10 +20,17 @@ package org.dogtagpki.server.tps.token;
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
*/
-public class TokenRecord {
+@DBObjectClasses({ "top", "tokenRecord" })
+public class TokenRecord extends DBRecord {
+
+ private static final long serialVersionUID = 1L;
String id;
String userID;
@@ -34,14 +41,16 @@ public class TokenRecord {
Date createTimestamp;
Date modifyTimestamp;
- public String getID() {
+ @DBAttribute("cn")
+ public String getId() {
return id;
}
- public void setID(String id) {
+ public void setId(String id) {
this.id = id;
}
+ @DBAttribute("tokenUserID")
public String getUserID() {
return userID;
}
@@ -50,6 +59,7 @@ public class TokenRecord {
this.userID = userID;
}
+ @DBAttribute("tokenStatus")
public String getStatus() {
return status;
}
@@ -58,6 +68,7 @@ public class TokenRecord {
this.status = status;
}
+ @DBAttribute("tokenReason")
public String getReason() {
return reason;
}
@@ -66,6 +77,7 @@ public class TokenRecord {
this.reason = reason;
}
+ @DBAttribute("tokenAppletID")
public String getAppletID() {
return appletID;
}
@@ -74,6 +86,7 @@ public class TokenRecord {
this.appletID = appletID;
}
+ @DBAttribute("keyInfo")
public String getKeyInfo() {
return keyInfo;
}
@@ -82,6 +95,7 @@ public class TokenRecord {
this.keyInfo = keyInfo;
}
+ @DBAttribute("dateOfCreate")
public Date getCreateTimestamp() {
return createTimestamp;
}
@@ -90,6 +104,7 @@ public class TokenRecord {
this.createTimestamp = createTimestamp;
}
+ @DBAttribute("dateOfModify")
public Date getModifyTimestamp() {
return modifyTimestamp;
}
diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java
index 3cf3b9e4e..e84e7c5c8 100644
--- a/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java
+++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java
@@ -51,7 +51,7 @@ public class TokenService extends PKIService implements TokenResource {
public TokenData createTokenData(TokenRecord tokenRecord) {
TokenData tokenData = new TokenData();
- tokenData.setID(tokenRecord.getID());
+ tokenData.setID(tokenRecord.getId());
tokenData.setUserID(tokenRecord.getUserID());
tokenData.setStatus(tokenRecord.getStatus());
tokenData.setReason(tokenRecord.getReason());
@@ -60,7 +60,7 @@ public class TokenService extends PKIService implements TokenResource {
tokenData.setCreateTimestamp(tokenRecord.getCreateTimestamp());
tokenData.setModifyTimestamp(tokenRecord.getModifyTimestamp());
- String tokenID = tokenRecord.getID();
+ String tokenID = tokenRecord.getId();
try {
tokenID = URLEncoder.encode(tokenID, "UTF-8");
} catch (UnsupportedEncodingException e) {
@@ -77,7 +77,7 @@ public class TokenService extends PKIService implements TokenResource {
public TokenRecord createTokenRecord(TokenData tokenData) {
TokenRecord tokenRecord = new TokenRecord();
- tokenRecord.setID(tokenData.getID());
+ tokenRecord.setId(tokenData.getID());
tokenRecord.setUserID(tokenData.getUserID());
tokenRecord.setStatus(tokenData.getStatus());
tokenRecord.setReason(tokenData.getReason());
@@ -162,7 +162,7 @@ public class TokenService extends PKIService implements TokenResource {
TPSSubsystem subsystem = (TPSSubsystem)CMS.getSubsystem(TPSSubsystem.ID);
TokenDatabase database = subsystem.getTokenDatabase();
- database.addRecord(createTokenRecord(tokenData));
+ database.addRecord(tokenData.getID(), createTokenRecord(tokenData));
tokenData = createTokenData(database.getRecord(tokenData.getID()));
return Response
@@ -188,7 +188,7 @@ public class TokenService extends PKIService implements TokenResource {
TokenRecord tokenRecord = database.getRecord(tokenID);
tokenRecord.setUserID(tokenData.getUserID());
- database.updateRecord(tokenData.getID(), tokenRecord);
+ database.updateRecord(tokenID, tokenRecord);
tokenData = createTokenData(database.getRecord(tokenID));