diff options
| author | Endi S. Dewata <edewata@redhat.com> | 2013-09-12 14:30:13 -0400 |
|---|---|---|
| committer | Endi S. Dewata <edewata@redhat.com> | 2013-09-17 14:37:34 -0400 |
| commit | 848887dd45e69f38edfada28a986e29eec804d54 (patch) | |
| tree | 54695beeeece5f4f1115caf595b6f3a1e56da252 /base | |
| parent | 3567f557307606c5f09496469a92f6972f5d5750 (diff) | |
| download | pki-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')
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)); |
