Author: rmeggins
Update of /cvs/dirsec/console/src/com/netscape/management/client/ug
In directory
cvs01.phx2.fedoraproject.org:/tmp/cvs-serv12046/src/com/netscape/management/client/ug
Modified Files:
LdapQueryBuilderDialog.java
Log Message:
Bug 496863 - 'Construct' button creates incorrect referral urls
https://bugzilla.redhat.com/show_bug.cgi?id=496863
Resolves: bug 496863
Bug Description: 'Construct' button creates incorrect referral urls
Fixed by: edewata
Reviewed by: rmeggins (and checked in by)
Branch: HEAD
Fix Description: Use LDAPUrl.encode() to encode DN and filter values
used in LDAP URLs
Platforms tested: Fedora 12
Flag Day: no
Doc impact: no
Index: LdapQueryBuilderDialog.java
===================================================================
RCS file:
/cvs/dirsec/console/src/com/netscape/management/client/ug/LdapQueryBuilderDialog.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- LdapQueryBuilderDialog.java 18 Jul 2005 00:34:22 -0000 1.1.1.1
+++ LdapQueryBuilderDialog.java 2 Apr 2010 17:26:52 -0000 1.2
@@ -272,7 +272,7 @@
*/
private void createQueryString() {
_queryString = "ldap:///";
- _queryString += _baseDN.getText();
+ _queryString += LDAPUrl.encode(_baseDN.getText());
switch (_searchScope.getSelectedIndex()) {
case 0: // Base DN only
@@ -287,30 +287,31 @@
break;
}
+ String filter;
switch (_userOrGroup.getSelectedIndex()) {
case 0: // users only
- _queryString += "(&(objectclass=person)";
+ filter = "(&(objectclass=person)";
break;
case 1: // groups only
- _queryString += "(&(objectclass=groupofuniquenames)";
+ filter = "(&(objectclass=groupofuniquenames)";
break;
case 2: // both users and groups
default:
- _queryString +=
"(&(|(objectclass=person)(objectclass=groupofuniquenames))";
+ filter =
"(&(|(objectclass=person)(objectclass=groupofuniquenames))";
break;
}
String value;
for (int i = 0; i < _criteriaCount; i++) {
if (_criteria[i]._condition.getSelectedIndex() == 3) {
- _queryString += "(!(";
+ filter += "(!(";
} else if (_criteria[i]._condition.getSelectedIndex() == 1) {
- _queryString += "(!(";
+ filter += "(!(";
} else {
- _queryString += "(";
+ filter += "(";
}
- _queryString +=
+ filter +=
(String)(_criteria[i]._attribute.getSelectedItem());
value = _criteria[i]._value.getText();
@@ -321,65 +322,67 @@
switch (_criteria[i]._condition.getSelectedIndex()) {
case 0: // contains
if (value.charAt(0) == '*')
- _queryString += "=";
+ filter += "=";
else
- _queryString += "=*";
- _queryString += value;
+ filter += "=*";
+ filter += value;
if (value.charAt(value.length() - 1) == '*')
- _queryString += ")";
+ filter += ")";
else
- _queryString += "*)";
+ filter += "*)";
break;
case 1: // does not contain (see above)
if (value.charAt(0) == '*')
- _queryString += "=";
+ filter += "=";
else
- _queryString += "=*";
- _queryString += value;
+ filter += "=*";
+ filter += value;
if (value.charAt(value.length() - 1) == '*')
- _queryString += "))";
+ filter += "))";
else
- _queryString += "*))";
+ filter += "*))";
break;
case 2: // is
- _queryString += "=";
- _queryString += value;
- _queryString += ")";
+ filter += "=";
+ filter += value;
+ filter += ")";
break;
case 3: // is not (see above)
- _queryString += "=";
- _queryString += value;
- _queryString += "))";
+ filter += "=";
+ filter += value;
+ filter += "))";
break;
case 4: // begins with
- _queryString += "=";
- _queryString += value;
+ filter += "=";
+ filter += value;
if (value.charAt(value.length() - 1) == '*')
- _queryString += ")";
+ filter += ")";
else
- _queryString += "*)";
+ filter += "*)";
break;
case 5: // ends with
if (value.charAt(0) == '*')
- _queryString += "=";
+ filter += "=";
else
- _queryString += "=*";
- _queryString += value;
- _queryString += ")";
+ filter += "=*";
+ filter += value;
+ filter += ")";
break;
case 6: // sounds like
- _queryString += "~=";
- _queryString += value;
- _queryString += ")";
+ filter += "~=";
+ filter += value;
+ filter += ")";
break;
default: // just in case treat like is
- _queryString += "=";
- _queryString += value;
- _queryString += ")";
+ filter += "=";
+ filter += value;
+ filter += ")";
break;
}
}
- _queryString += ")";
+ filter += ")";
+
+ _queryString += LDAPUrl.encode(filter);
}