LDAP 스타일 파싱을 제공하는 독립형 Java 라이브러리가 있습니까?

StackOverflow https://stackoverflow.com/questions/1027307

  •  06-07-2019
  •  | 
  •  

문제

LDAP 스타일 필터 표현식을 구문 분석 할 수있는 독립형 Java 라이브러리를 찾고 있습니다. 그렇지 않으면 Antlr을 대신 사용하여 하나의 자체적으로 구축하는 것이 좋습니다.

배경 : 필터 자체는 네트워크를 통해 제출되며 적절한 최대 절전 모드 기준 인 Say를 만들고 싶습니다. 나는 LDAP로 아무것도하지 않는다!

사용자 정의 쿼리를 전송 및 변환하기위한 기술 독립적 인 솔루션에 대한 다른 아이디어도 감사합니다.

도움이 되었습니까?

해결책

Apache Directory Server의 공유 LDAP 라이브러리를 사용할 수 있습니다.

Maven AT에서 사용할 수 있습니다

<dependency>
  <groupId>org.apache.directory.shared</groupId>
  <artifactId>shared-ldap</artifactId>
  <version>0.9.15</version>
</dependency>

그리고 당신은 다음과 같이 사용할 수 있습니다.

final ExprNode filter = FilterParser.parse(filterString);

다른 팁

당신은 또한 사용을 볼 수 있습니다 Apache Directory 서버 OpenLDap에 대한 Lavinio의 제안과 같은 일부 클래스를 사용하거나 응용 프로그램의 일부로 포함합니다.

opends ldapfilter라는 클래스에 정적 메소드가 있습니다. 풀다, 이것은 문자열 인수를 가져옵니다.

LDAPFilter parsed = LDAPFilter.decode(filter);

Javadoc입니다 여기.

Apache DS의 필터 파서와 매우 유사하지만 실질적인 상속 계층이 없기 때문에 결과로 작업하는 것은 약간 다릅니다. 내가 찾은 한 가지 장점은 확장 가능한 매칭 규칙 구문을 다시 작성하지 않았다는 것입니다. 따라서 필터를 유효성을 검증하고 정상화하는 방법으로 이것을 염두에 두는 방법으로 생각하는 경우.

경고는 두 파서 모두 미래의 공백을 필터링 할 것으로 예상되므로 미리 입력 문자열에서 이와 같은 것을 실행해야한다는 것입니다.

filter.replaceAll("\\s?([\\(\\|&!=:\\)])\\s?", "$1");

도움이 되었기를 바랍니다.

내가 아는 유일한 LDAP 구문 분석 라이브러리는 .NET Ones System.DirectoryServices입니다.* 이론적으로 Mono 에서이 라이브러리를 사용하여 기술 독립성을 얻을 수 있어야합니다 (Mono 또는 .NET 자체를 제외한).

OpenLDAP의 일부로 JLDAP를 보셨습니까?

그만큼 출처를 사용할 수 있습니다, 그리고 LDAP URL을 구문 분석하기위한 클래스가 있습니다. 검색 표현. 필요한 것보다 더 많지만 LDAP 서버에 대해 실제로 실행하지 않고 객체 만 사용할 수 있습니다.

명확히하기 위해 LDAP를 쿼리하려는 경우 LDAP Syle 쿼리로 설정되어 있습니까?

이런 것을 보셨습니까?

http://josql.sourceforge.net/

대부분의 OSGI 컨테이너에는이 기능도 포함되어 있습니다 이러한 종류의 필터는 OSGI 사양의 일부입니다..

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top