2013-03-19 70 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