0

すべてのユーザーが同じマネージャーに報告するように、Java から LDAP にクエリを実行しようとしています。

searchFilter を使用してクエリを実行すると -String searchFilter = "(&(objectClass=user)(sAMAccountName=" + search + "))";

出力を次のように取得しますmanager=CN=Eve\, Adam,OU=something,OU=something,OU=StandardUser,OU=User,DC=something,DC=something,DC=something

しかし、私の検索クエリがString searchFilter = "(&(objectClass=user)(manager=CN=Eve*,OU=StandardUser,OU=User,DC=something,DC=something,DC=something))";

また

String searchFilter = "(&(objectClass=user)(manager=CN=Eve*))";

出力が得られません。

以下は、データを取得しようとしている方法です。

String searchBase = "DC=something,DC=something,DC=something";
String returnedAtts[] = {"*"};
SearchControls searchCtls = new SearchControls();
searchCtls.setReturningAttributes(returnedAtts);
NamingEnumeration answer = ctxGC.search(searchBase, searchFilter, searchCtls);

注意してください - DC=something確かにいくらかの価値があります。

4

1 に答える 1

2

クライアントは、DN ( ) で部分文字列フィルタを使用しようとしています(manager=CN=Eve*)。DN には部分文字列一致ルールがないため、部分文字列フィルターを DN で使用することはできません。検索フィルタで DN を指定する場合、または検索要求のベース オブジェクトとして DN を指定する場合、LDAP クライアントは完全な DN を使用する必要があります (例: cn=user,ou=people,dc=example,dc=com.

こちらもご覧ください

于 2013-10-01T10:42:34.910 に答える