2013-03-19 72 views
0

我有一個包含用戶/地址數據的relatonal數據庫,我想通過LDAP訪問它。我正在使用apacheDS並正在編寫一個自定義分區。我已經可以從我的數據庫中返回條目,但我不知道什麼是阻止搜索/過濾的最佳方式。Apacheds:在自定義分區中搜索

此文章: http://markmail.org/message/zxeu2xydfhspexbx#query:+page:1+mid:yxs6d7vnn7jqcmei+state:results表明過濾是一個非常複雜的事情(不只是一些「ifs」)。它指向執行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 - >表的人,列名字」),所以我不不得不執行任何操作來進行搜索?

  2. 如果沒有,是否有API會解析過濾表達式(如下所示:(&(cn = foo *)(sn = bar))),我只需要實現這樣的方法: boolean matches(ServerEntry e, String attributeName, String value, ... comparisonType)

  3. 如果沒有,有沒有實現,除了解析過濾表達式自己和實現所有,並沒有,或者邏輯和數據庫搜索的搜索任何其他明顯的/簡單的方法?

我相信我不是唯一一個有這樣那樣的問題,但我還沒有發現,沒有任何的源碼任何有用的文檔或實例,只有一個sourceforce項目(彭羅斯)。我很欣賞你可以提供的任何幫助。非常感謝你!

回答

0

請參閱this答案以獲得非常類似的要求。您不需要分析過濾器,它已經可以作爲ExprNode使用,並且您只需要一個簡單的LDAP-SQL轉換層,具體取決於需求。

+0

謝謝,這非常有幫助:-) – uschlumpf 2013-03-25 10:46:29