Java 在employeeID属性中查找具有特定值的用户

Java 在employeeID属性中查找具有特定值的用户,java,active-directory,ldap,Java,Active Directory,Ldap,我试图通过搜索employeeID属性(每个员工都是唯一的)来查找用户名的CN。我已经让它返回一个包含所有属性的字符串,但我希望它只返回用户的CN(例如:“John Doe”或“CN=John Doe”;两者都可以) 注意:我知道可以从字符串中剪切部分,但我希望它只返回我需要的值。搜索请求应该包含属性列表。某些API将返回匹配项中的所有属性。在要返回的属性列表中指定cn,并准备好处理多值cn属性 另见 搜索请求应包含属性列表。某些API将返回匹配项中的所有属性。在要返回的属性列表中指定c

我试图通过搜索employeeID属性(每个员工都是唯一的)来查找用户名的CN。我已经让它返回一个包含所有属性的字符串,但我希望它只返回用户的CN(例如:“John Doe”或“CN=John Doe”;两者都可以)


注意:我知道可以从字符串中剪切部分,但我希望它只返回我需要的值。

搜索请求应该包含属性列表。某些API将返回匹配项中的所有属性。在要返回的属性列表中指定
cn
,并准备好处理多值
cn
属性

另见

搜索请求应包含属性列表。某些API将返回匹配项中的所有属性。在要返回的属性列表中指定
cn
,并准备好处理多值
cn
属性

另见
    • 例如:

      DirContext ctx = new InitialDirContext(env);
                  /***/
                  NamingEnumeration<?> namingEnum = ctx.search(
                          "dc=stackoverflow,dc=com, "employeeID=" +id,
                          ctls);
                  while (namingEnum.hasMoreElements()) {
                      SearchResult result = (SearchResult) namingEnum.next();
                      Attributes attrs = result.getAttributes();
                      System.out.println(attrs.get("cn"));
                      System.out.println(attrs.get("name"));
                      System.out.println(attrs.get("userPrincipalName"));
                  }
                  /***/
      
      DirContext ctx=新的初始DirContext(env);
      /***/
      NamingEnumeration Namingeneum=ctx.search(
      “dc=stackoverflow,dc=com,”employeeID=“+id,
      CTL);
      while(namingeum.hasMoreElements()){
      SearchResult=(SearchResult)namingeum.next();
      Attributes attrs=result.getAttributes();
      System.out.println(attrs.get(“cn”);
      System.out.println(attrs.get(“name”);
      System.out.println(attrs.get(“userPrincipalName”);
      }
      /***/
      
      结果是:

      CN:Andres Montejo

      姓名:Andres Montejo

      userPrincipalName:andresmontejo@stackoverflow.com例如:

      DirContext ctx = new InitialDirContext(env);
                  /***/
                  NamingEnumeration<?> namingEnum = ctx.search(
                          "dc=stackoverflow,dc=com, "employeeID=" +id,
                          ctls);
                  while (namingEnum.hasMoreElements()) {
                      SearchResult result = (SearchResult) namingEnum.next();
                      Attributes attrs = result.getAttributes();
                      System.out.println(attrs.get("cn"));
                      System.out.println(attrs.get("name"));
                      System.out.println(attrs.get("userPrincipalName"));
                  }
                  /***/
      
      DirContext ctx=新的初始DirContext(env);
      /***/
      NamingEnumeration Namingeneum=ctx.search(
      “dc=stackoverflow,dc=com,”employeeID=“+id,
      CTL);
      while(namingeum.hasMoreElements()){
      SearchResult=(SearchResult)namingeum.next();
      Attributes attrs=result.getAttributes();
      System.out.println(attrs.get(“cn”);
      System.out.println(attrs.get(“name”);
      System.out.println(attrs.get(“userPrincipalName”);
      }
      /***/
      
      结果是:

      CN:Andres Montejo

      姓名:Andres Montejo

      userPrincipalName:andresmontejo@stackoverflow.com