0

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/ ですが、それを使用してデータベースを検索する方法がわかりません。

私の質問は次のとおりです。

  1. 検索を機能させるために何も実装する必要がないように、「LDAP 属性 -> SQL テーブル/列」(「cn -> テーブル Person、列 FirstName」など) を定義する方法はありますか?

  2. そうでない場合、フィルタリング式を解析する API はありますか (このように: (&(cn=foo*)(sn=bar)) )、私は次のようなメソッドを実装するだけです: boolean matches(ServerEntry e, String attributeName, String value, ... comparisonType)

  3. そうでない場合、フィルタリング式を自分で解析し、すべての and、not、またはロジックとデータベース検索を実装する以外に、検索を実装する明白で簡単な方法はありますか?

この種の問題を抱えているのは私だけではないと思いますが、役立つドキュメントや例は見つかりませんでした。ソースコードのないソースフォース プロジェクト (ペンローズ) は 1 つだけです。あなたが提供できる助けに感謝します。どうもありがとうございました!

4

1 に答える 1

0

非常によく似た要件については、この回答をご覧ください。フィルタを解析する必要はありません。フィルタはすでにExprNodeとして利用可能であり、必要なのは必要に応じて単純なLDAP-SQL変換レイヤーだけです。

于 2013-03-19T14:35:21.567 に答える