簡體   English   中英

Java LDAP查詢以檢索組織單位中的所有用戶

[英]Java LDAP query to retrieve all users in an organisational unit

我找不到按特定組織單位從LDAP獲取用戶的方法。 僅能使所有用戶擁有:

List users = (List<User>) ldapTemplate.search(base, "(&(objectClass=person))", new UserAttributesMapper());

如果我添加類似(memberOf = OU = Users)之類的查詢,則會得到空結果。 這種動作的正確查詢是什么?

可能您的LDAP路徑錯誤。 下載** LDAP瀏覽器**,並檢查用戶所在的路徑; 然后在查詢中使用此確切路徑。

如果OU是子樹,則將其用作搜索的基礎。 如果是屬性,請搜索

(&(objectClass=person)(ou=Users))

如果memberOf屬性得到了維護並且是最新的,那么您的'memberOf'搜索也應該起作用,但是您需要指定用戶的完整DN,而不僅僅是RDN。

實際上,如果ou屬性是人員條目的一部分,則只能使用(ou = Users)過濾器(實際上並非如此)。

您可以使用ou = Users,dc = Company,dc = com作為基礎。

否則,LDAP標准定義了一種將斷言作為專有名稱的一部分進行匹配的方法,但不幸的是,並非所有的LDAP服務器都支持該斷言。 OpenDJ,Sun Directory Server和RH DS確實支持它,可能還有其他一些支持。 您應該使用以下過濾器:

(&(對象類=人)(OU:DN:=用戶))

問候,

朱利。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM