私はこれをしばらく前に機能させましたが、解決策を投稿する時間がありませんでした。
このページの例に基づく:apacheds用の単純なカスタムパーティションを作成する方法。
最初のパーティションを作成することができました。しかし、これは私の場合には役に立ちませんでした。ApacheDSにもっと良いドキュメントがあれば素晴らしいと思います。
したがって、フィルタリングについては、Apache Developers Listから、基本的に役立つクラスがないことを説明するメールを受け取りました。自分で行う必要があります(コードの改善に興味があるので、間違っている場合は修正してください)すぐ)。
たとえば、フィルター(objectClass = person)を取得したら、次のようにする必要があります。
if(ctx.getFilter().toString().contains("objectClass=person")) {
//Somehow return entries that only correspond to persons on the data base (were you store your directory entries).
}
実際、ApacheDSは属性名を対応するOIDに変換するため、上記のコード例は機能しないことに注意してください。したがって、「objectClass」の代わりに、「objectClass」属性のOIDである2.5.6を取得します。
さて、検索範囲に関しては、JPBlancからの回答はそれについてほとんど述べているので、私は彼が言ったことを繰り返しません。カスタムパーティションでは、ツリーケースを異なる方法で処理するコードを記述する必要があります。
例えば:
switch (ctx.getScope()) {
case OBJECT:
//Find a particular entry on your entry database.
case ONELEVEL:
//Find all entries that match directly below a given entry.
case SUBTREE:
//Find all entries that match recursively below a given entry.
よろしく。