0

元の文字の大文字と小文字を維持しながら、LDAP サーバーに保存されているユーザー DN を取得したいと考えています。たとえば、サーバーの DN が「cn=Bob, o=MyOrg」であるとします。「cn=bob, o=myorg」を使用してサーバーにクエリを実行し、結果として元の「cn=Bob, o=MyOrg」を取得したいと考えています。

DirContext.getAttributes(dn) メソッドは一連の属性を返すことができますが、これには DN 自体は含まれません。一方、DirContext.search() は、getNameInNamespace() を使用して、この情報を含む SearchResult を返します。残念ながら、検索式では DN での検索が許可されていないようです。これは私が持っているものです。

最初に getAttributes() を使用して一意の属性を取得し、次にこの属性値を search() で使用することでこれを達成できることを理解しています。しかし、これは2つの接続につながります。さらに、search() できる一意の、null ではない属性があることを確認する必要があります。

4

2 に答える 2

0

私が見つけた解決策で私の質問に答えさせてください。

name パラメーター (検索コンテキスト) は DN である必要があり、クエリ フィルターは空または like (objectClass=*) である search() 関数が含まれます。次に、検索対象の DN に対応する 1 つの行を返します。その後、元の DN が SearchResult で使用可能になります。

于 2015-12-14T21:06:41.497 に答える