summaryrefslogtreecommitdiffstats
path: root/base/tps/src/org/dogtagpki/server/tps/dbs
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2015-02-11 13:57:44 -0500
committerEndi S. Dewata <edewata@redhat.com>2015-02-11 14:50:01 -0500
commitcdad249ce00305a165d272d86f100d05edf97db2 (patch)
tree80c9a5d565e1f1ce804ea44971569ee08d55e268 /base/tps/src/org/dogtagpki/server/tps/dbs
parent91c77390474d67cfd0c15b8b3377997b3f0cd38a (diff)
downloadpki-cdad249ce00305a165d272d86f100d05edf97db2.tar.gz
pki-cdad249ce00305a165d272d86f100d05edf97db2.tar.xz
pki-cdad249ce00305a165d272d86f100d05edf97db2.zip
Refactored LDAPDatabase.createFilter().
The createFilter() method in LDAPDatabase has been changed to construct an LDAP filter based on a keyword and a set of attributes with their values. This will allow searching the database based on specific attribute values. The subclasses of LDAPDatabase have been updated accordingly. https://fedorahosted.org/pki/ticket/1164
Diffstat (limited to 'base/tps/src/org/dogtagpki/server/tps/dbs')
-rw-r--r--base/tps/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java20
-rw-r--r--base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java21
-rw-r--r--base/tps/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java21
3 files changed, 42 insertions, 20 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
index 4eb3e11e7..c15ff9255 100644
--- a/base/tps/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java
+++ b/base/tps/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java
@@ -20,8 +20,8 @@ package org.dogtagpki.server.tps.dbs;
import java.util.Calendar;
import java.util.Date;
+import java.util.Map;
-import org.apache.commons.lang.StringUtils;
import org.dogtagpki.tps.main.Util;
import com.netscape.certsrv.base.EBaseException;
@@ -89,13 +89,21 @@ public class ActivityDatabase extends LDAPDatabase<ActivityRecord> {
}
@Override
- public String createFilter(String filter) {
+ public String createFilter(String keyword, Map<String, String> attributes) {
- if (StringUtils.isEmpty(filter)) {
- return "(id=*)";
+ StringBuilder sb = new StringBuilder();
+
+ if (keyword != null) {
+ keyword = LDAPUtil.escapeFilter(keyword);
+ sb.append("(|(tokenID=*" + keyword + "*)(userID=*" + keyword + "*))");
+ }
+
+ createFilter(sb, attributes);
+
+ if (sb.length() == 0) {
+ sb.append("(id=*)");
}
- filter = LDAPUtil.escapeFilter(filter);
- return "(|(tokenID=*" + filter + "*)(userID=*" + filter + "*))";
+ return sb.toString();
}
}
diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java b/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java
index 7450b0665..b593f9918 100644
--- a/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java
+++ b/base/tps/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java
@@ -19,8 +19,7 @@
package org.dogtagpki.server.tps.dbs;
import java.util.Date;
-
-import org.apache.commons.lang.StringUtils;
+import java.util.Map;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.dbs.IDBSubsystem;
@@ -59,13 +58,21 @@ public class TPSCertDatabase extends LDAPDatabase<TPSCertRecord> {
}
@Override
- public String createFilter(String filter) {
+ public String createFilter(String keyword, Map<String, String> attributes) {
+
+ StringBuilder sb = new StringBuilder();
+
+ if (keyword != null) {
+ keyword = LDAPUtil.escapeFilter(keyword);
+ sb.append("(|(id=*" + keyword + "*)(tokenID=*" + keyword + "*)(userID=*" + keyword + "*))");
+ }
+
+ createFilter(sb, attributes);
- if (StringUtils.isEmpty(filter)) {
- return "(id=*)";
+ if (sb.length() == 0) {
+ sb.append("(id=*)");
}
- filter = LDAPUtil.escapeFilter(filter);
- return "(|(id=*" + filter + "*)(tokenID=*" + filter + "*)(userID=*" + filter + "*))";
+ return sb.toString();
}
}
diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java
index f86c6e203..19f4830b3 100644
--- a/base/tps/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java
+++ b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java
@@ -19,8 +19,7 @@
package org.dogtagpki.server.tps.dbs;
import java.util.Date;
-
-import org.apache.commons.lang.StringUtils;
+import java.util.Map;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.dbs.IDBSubsystem;
@@ -56,13 +55,21 @@ public class TokenDatabase extends LDAPDatabase<TokenRecord> {
}
@Override
- public String createFilter(String filter) {
+ public String createFilter(String keyword, Map<String, String> attributes) {
+
+ StringBuilder sb = new StringBuilder();
+
+ if (keyword != null) {
+ keyword = LDAPUtil.escapeFilter(keyword);
+ sb.append("(|(id=*" + keyword + "*)(userID=*" + keyword + "*))");
+ }
+
+ createFilter(sb, attributes);
- if (StringUtils.isEmpty(filter)) {
- return "(id=*)";
+ if (sb.length() == 0) {
+ sb.append("(id=*)");
}
- filter = LDAPUtil.escapeFilter(filter);
- return "(|(id=*" + filter + "*)(userID=*" + filter + "*))";
+ return sb.toString();
}
}