0

我有一个关系数据库,其中包含我想通过 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 -> 表人,列 FirstName”),这样我就不必实现任何东西来使搜索工作?

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

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

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

4

1 回答 1

0

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

于 2013-03-19T14:35:21.567 回答