2013-03-19 3 views
0

LDAP를 통해 액세스 할 수 있도록하려는 사용자/주소 데이터가있는 relatonal 데이터베이스가 있습니다. 나는 apacheDS를 사용하고 있으며 커스텀 파티션을 작성하고있다. 내 데이터베이스에서 항목을 이미 반환 할 수 있지만 검색/필터링 impement하는 가장 좋은 방법을 궁금해.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 프로젝트 (펜로즈를) 발견하지 않았습니다 믿습니다. 당신이 제공 할 수있는 도움에 감사드립니다. 고마워요!

답변

0

매우 비슷한 요구 사항에 대한 대답은 this입니다. 필터를 파싱 할 필요는 없으며 이미 ExprNode로 사용할 수 있으며 필요에 따라 간단한 LDAP-SQL 변환 계층 만 있으면됩니다.

+0

고맙습니다. 매우 도움이되었습니다. – uschlumpf