diff options
author | Endi S. Dewata <edewata@redhat.com> | 2015-02-11 13:57:44 -0500 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2015-02-11 14:50:01 -0500 |
commit | cdad249ce00305a165d272d86f100d05edf97db2 (patch) | |
tree | 80c9a5d565e1f1ce804ea44971569ee08d55e268 /base/tps | |
parent | 91c77390474d67cfd0c15b8b3377997b3f0cd38a (diff) | |
download | pki-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')
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(); } } |