Apacheds:在自定义分区中搜索

时间:2013-03-19 09:08:43

标签: java sql ldap apacheds

我有一个带有用户/地址数据的关系数据库,我想通过LDAP访问它。我正在使用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 - > table Person,列FirstName”)所以我不需要实现任何东西来制作搜索工作?

  2. 如果没有,是否有一个API会解析过滤表达式(如:(&(cn = foo *)(sn = bar)))对我来说,我只需要实现一个类似的方法这个: boolean matches(ServerEntry e, String attributeName, String value, ... comparisonType)

  3. 如果没有,除了自己解析过滤表达式并实现所有的,而不是逻辑和数据库搜索之外,还有其他明显/简单的方法来实现搜索吗?

  4. 我相信我并不是唯一一个遇到此类问题的人,但我没有找到任何有用的文档或示例,只有一个没有任何源代码的sourceforce项目(penrose)。我非常感谢您提供的任何帮助。非常感谢你!

1 个答案:

答案 0 :(得分:0)

请查看this答案,了解非常相似的要求。您无需解析过滤器,它已作为ExprNode提供,您需要的只是一个简单的LDAP-SQL转换层,具体取决于需求。