gpt4 book ai didi

java - 使用 java 列出 ldap 中的所有 sAMAccountName

转载 作者:行者123 更新时间:2023-12-01 12:27:00 25 4
gpt4 key购买 nike

我想从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com