[英]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.