使用Java进行LDAP身份验证,需要说明

时间:2013-07-12 09:33:04

标签: java authentication ldap

如果你能告诉我一件我不太明白的代码,我将不胜感激:

(&(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);
     }
...

1 个答案:

答案 0 :(得分:1)

我觉得不对劲。所有过滤器都会找到具有任何CN的条目,并且分别与ldap_id_field和netid中指定为搜索参数的属性名称/值对匹配。没有'添加'正在进行:&意味着两个过滤表达式必须匹配。