我想从 ldap 获取所有 sAMAccountName 的列表,下面是使用 samAccountName 为我提供用户的 Ldap 属性的方法
public static void searchUserFromLdap(String samAccountName) throws Exception{
SearchResult searchResult = ldapConnection.search("CN=XX,DC=XX,DC=XX", SearchScope.SUB, "(sAMAccountName=" + samAccountName +")");
if(searchResult.getSearchEntries().size()<=0){
System.out.println("No such user found in LDAP");
return;
}
System.out.println("Start :- LDAP attributes for given user\n");
for(SearchResultEntry searchResultEntry : searchResult.getSearchEntries()){
System.out.println(searchResultEntry.toLDIFString());
}
System.out.println("\nEnd :- LDAP attributes for given user");
}
此方法接受 samAccountName 并返回用户的 ldap 属性 我想获取所有 samAccountName 的列表,我已经搜索过这个,但没有得到任何相关内容,谁能告诉我如何获取 sAMAccountName 的列表。
最佳答案
我不确定 ldapConnection
是什么。是来自 unboundid ?
无论从方法的外观来看,第三个参数都是您的 LDAP 搜索过滤器。您只需将此过滤器更改为以下内容即可:
(objectClass=user)
所以方法调用将是:
SearchResult searchResult = ldapConnection.search(
"CN=XX,DC=XX,DC=XX",
SearchScope.SUB,
"(objectClass=user)");
SearchResult
将包含在 CN=XX,DC=XX,DC=XX
下找到的所有用户。
如果来自 unboundid,则您可以添加第四个参数来定义您只希望为每个结果返回 sAMAccountName
ldap 属性。所以这将是:
SearchResult searchResult = ldapConnection.search(
"CN=XX,DC=XX,DC=XX",
SearchScope.SUB,
"(objectClass=user)",
"sAMAccountName");
有关 LDAP 搜索过滤器的更多详细信息,请参阅以下资源: http://docs.oracle.com/cd/E19528-01/819-0997/gdxpo/index.html
关于java - 使用 java 列出 ldap 中的所有 sAMAccountName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26254893/