diff options
author | Endi S. Dewata <edewata@redhat.com> | 2014-04-25 14:35:44 -0400 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2014-04-29 17:33:53 -0400 |
commit | f3c8cd311ebcec1578269d2071f92700d33e3955 (patch) | |
tree | 8f04ed3949a72a26962343bd037fb9df483b06a9 | |
parent | 7b6b60b7d8d26799ea1bda48e6e51fa05854c80e (diff) | |
download | pki-f3c8cd311ebcec1578269d2071f92700d33e3955.tar.gz pki-f3c8cd311ebcec1578269d2071f92700d33e3955.tar.xz pki-f3c8cd311ebcec1578269d2071f92700d33e3955.zip |
Updated TPS search filters.
The token, certificate, and activity database have been updated
to search against some predetermined attributes.
Ticket #920
4 files changed, 24 insertions, 6 deletions
diff --git a/base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java b/base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java index 4c3ac8dfb..650a65ea9 100644 --- a/base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java +++ b/base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java @@ -103,9 +103,9 @@ public abstract class LDAPDatabase<E extends IDBObj> extends Database<E> { try (IDBSSession session = dbSubsystem.createSession()) { Collection<E> list = new ArrayList<E>(); - filter = createFilter(filter); - CMS.debug("LDAPDatabase: searching " + baseDN + " with filter " + filter); - IDBSearchResults results = session.search(baseDN, filter); + String ldapFilter = createFilter(filter); + CMS.debug("LDAPDatabase: searching " + baseDN + " with filter " + ldapFilter); + IDBSearchResults results = session.search(baseDN, ldapFilter); while (results.hasMoreElements()) { @SuppressWarnings("unchecked") diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java index 0222f3f00..da884f0e9 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/ActivityDatabase.java @@ -53,6 +53,12 @@ public class ActivityDatabase extends LDAPDatabase<ActivityRecord> { @Override public String createFilter(String filter) { - return StringUtils.isEmpty(filter) ? "(id=*)" : "(id=*"+LDAPUtil.escapeFilter(filter)+"*)"; + + if (StringUtils.isEmpty(filter)) { + return "(id=*)"; + } + + filter = LDAPUtil.escapeFilter(filter); + return "(|(tokenID=*" + filter + "*)(userID=*" + filter + "*))"; } } diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java index e12a41b69..7450b0665 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/TPSCertDatabase.java @@ -60,6 +60,12 @@ public class TPSCertDatabase extends LDAPDatabase<TPSCertRecord> { @Override public String createFilter(String filter) { - return StringUtils.isEmpty(filter) ? "(id=*)" : "(id=*"+LDAPUtil.escapeFilter(filter)+"*)"; + + if (StringUtils.isEmpty(filter)) { + return "(id=*)"; + } + + filter = LDAPUtil.escapeFilter(filter); + return "(|(id=*" + filter + "*)(tokenID=*" + filter + "*)(userID=*" + filter + "*))"; } } diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java index f95e10bf7..f86c6e203 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/dbs/TokenDatabase.java @@ -57,6 +57,12 @@ public class TokenDatabase extends LDAPDatabase<TokenRecord> { @Override public String createFilter(String filter) { - return StringUtils.isEmpty(filter) ? "(id=*)" : "(id=*"+LDAPUtil.escapeFilter(filter)+"*)"; + + if (StringUtils.isEmpty(filter)) { + return "(id=*)"; + } + + filter = LDAPUtil.escapeFilter(filter); + return "(|(id=*" + filter + "*)(userID=*" + filter + "*))"; } } |