我找不到意义,这两个搜索过滤器的例子之间的区别
(&(objectClass=user)(sn=*)(bysUserName=*)(|(bysUserName={0})(cn={0})))
(&(|(bysUserName={0})(cn={0}))(objectClass=User))
任何人都可以帮我弄清楚这两个过滤器吗?感谢
答案 0 :(得分:1)
如果你重新排序它们,我猜你会看到差异:
(&(objectClass=user)(sn=*)(bysUserName=*)(|(bysUserName={0})(cn={0})))
(&(objectClass=User) (|(bysUserName={0})(cn={0})))
第一个对sn
的附加限制(必须包含某些值)和bysUserName
(同样的事情 - 必须包含某些值)在第二个过滤器中不存在。
基本上,&
定义 AND 条件,而|
是 OR 运算符 - 因此第一个过滤器需要您的LDAP对象满足:
objectClass
必须为user
sn
必须包含某些内容(不能为空)bysUserName
必须包含 bysUserName
或cn
必须与替换{0}
占位符第二个过滤器只需要点(1)和(4)