LDAP 経由でアクセスできるようにしたいユーザー/アドレス データを含むリレーショナル データベースがあります。私は apacheDS を使用しており、カスタム パーティションを作成しています。すでにデータベースからエントリを返すことができますが、検索/フィルタリングを実装する最良の方法は何だろうか.
この投稿: http://markmail.org/message/zxeu2xydfhspexbx#query:+page:1+mid:yxs6d7vnn7jqcmei+state:resultsは、フィルタリングが非常に複雑なものであることを示しています (単なる「if」ではありません)。DefaultSearchEngine http://svn.apache.org/repos/asf/directory/apacheds/tags/1.5.5/xdbm-search/src/main/java/org/apache/directory/server/の実装を指します。 xdbm/search/impl/ ですが、それを使用してデータベースを検索する方法がわかりません。
私の質問は次のとおりです。
検索を機能させるために何も実装する必要がないように、「LDAP 属性 -> SQL テーブル/列」(「cn -> テーブル Person、列 FirstName」など) を定義する方法はありますか?
そうでない場合、フィルタリング式を解析する API はありますか (このように: (&(cn=foo*)(sn=bar)) )、私は次のようなメソッドを実装するだけです:
boolean matches(ServerEntry e, String attributeName, String value, ... comparisonType)
そうでない場合、フィルタリング式を自分で解析し、すべての and、not、またはロジックとデータベース検索を実装する以外に、検索を実装する明白で簡単な方法はありますか?
この種の問題を抱えているのは私だけではないと思いますが、役立つドキュメントや例は見つかりませんでした。ソースコードのないソースフォース プロジェクト (ペンローズ) は 1 つだけです。あなたが提供できる助けに感謝します。どうもありがとうございました!