You need to sign in or sign up before continuing.
提交 d8678b4b 编写于 作者: X xuelei

6979376: to have ldap filters tolerate underscore character in object identifier

Reviewed-by: weijun
上级 d309677c
...@@ -427,7 +427,10 @@ final class Filter { ...@@ -427,7 +427,10 @@ final class Filter {
} }
} else { } else {
// descriptor // descriptor
if (filter[i] != '-' && // The underscore ("_") character is not allowed by
// the LDAP specification. We allow it here to
// tolerate the incorrect use in practice.
if (filter[i] != '-' && filter[i] != '_' &&
!(filter[i] >= '0' && filter[i] <= '9') && !(filter[i] >= '0' && filter[i] <= '9') &&
!(filter[i] >= 'A' && filter[i] <= 'Z') && !(filter[i] >= 'A' && filter[i] <= 'Z') &&
!(filter[i] >= 'a' && filter[i] <= 'z')) { !(filter[i] >= 'a' && filter[i] <= 'z')) {
...@@ -467,7 +470,10 @@ final class Filter { ...@@ -467,7 +470,10 @@ final class Filter {
break; break;
} }
if (filter[i] != '-' && // The underscore ("_") character is not allowed by
// the LDAP specification. We allow it here to
// tolerate the incorrect use in practice.
if (filter[i] != '-' && filter[i] != '_' &&
!(filter[i] >= '0' && filter[i] <= '9') && !(filter[i] >= '0' && filter[i] <= '9') &&
!(filter[i] >= 'A' && filter[i] <= 'Z') && !(filter[i] >= 'A' && filter[i] <= 'Z') &&
!(filter[i] >= 'a' && filter[i] <= 'z')) { !(filter[i] >= 'a' && filter[i] <= 'z')) {
...@@ -515,7 +521,10 @@ final class Filter { ...@@ -515,7 +521,10 @@ final class Filter {
} }
} else { } else {
// descriptor // descriptor
if (filter[j] != '-' && // The underscore ("_") character is not allowed by
// the LDAP specification. We allow it here to
// tolerate the incorrect use in practice.
if (filter[j] != '-' && filter[j] != '_' &&
!(filter[j] >= '0' && filter[j] <= '9') && !(filter[j] >= '0' && filter[j] <= '9') &&
!(filter[j] >= 'A' && filter[j] <= 'Z') && !(filter[j] >= 'A' && filter[j] <= 'Z') &&
!(filter[j] >= 'a' && filter[j] <= 'z')) { !(filter[j] >= 'a' && filter[j] <= 'z')) {
......
...@@ -48,6 +48,8 @@ ...@@ -48,6 +48,8 @@
* @run main/othervm InvalidLdapFilters valid (sn;lang-en:dn:2.4.6.8.10:=Barney) * @run main/othervm InvalidLdapFilters valid (sn;lang-en:dn:2.4.6.8.10:=Barney)
* @run main/othervm InvalidLdapFilters valid * @run main/othervm InvalidLdapFilters valid
(&(objectClass=Person)(|(sn=Jensen)(cn=Bab*))) (&(objectClass=Person)(|(sn=Jensen)(cn=Bab*)))
* @run main/othervm InvalidLdapFilters valid
(orcluserapplnprovstatus;EMAIL_email=PROVISIONING_FAILURE)
* @run main/othervm InvalidLdapFilters invalid "(&(cn=Robert Dean)))" * @run main/othervm InvalidLdapFilters invalid "(&(cn=Robert Dean)))"
* @run main/othervm InvalidLdapFilters invalid (&|(cn=Bob)) * @run main/othervm InvalidLdapFilters invalid (&|(cn=Bob))
* @run main/othervm InvalidLdapFilters invalid (&&(cn=Bob)) * @run main/othervm InvalidLdapFilters invalid (&&(cn=Bob))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册