如果你能告诉我一件我不太明白的代码,我将不胜感激:
(&(cn=*)({0}={1}))
在过滤字段中的含义是什么?
我知道cn
表示搜索cn
属性,然后将结果添加到({0}={1})
。
({0}={1})
是什么意思?
以下是代码:
try {
// Create initial context
ctx = new InitialDirContext(env);
Attributes matchAttrs = new BasicAttributes(true);
matchAttrs.put(new BasicAttribute(ldap_id_field, netid));
String attlist[] = {ldap_email_field, ldap_givenname_field,
ldap_surname_field, ldap_phone_field};
// look up attributes
try {
SearchControls ctls = new SearchControls();
ctls.setReturningAttributes(attlist);
NamingEnumeration answer =
ctx.search(ldap_search_context, "(&(cn=*)({0}={1}))", new Object[] {ldap_id_field,netid},ctls);
}
...
答案 0 :(得分:1)
我觉得不对劲。所有过滤器都会找到具有任何CN的条目,并且分别与ldap_id_field和netid中指定为搜索参数的属性名称/值对匹配。没有'添加'正在进行:&意味着两个过滤表达式必须匹配。