是否有提供LDAP风格解析的独立Java库?

是否有提供LDAP风格解析的独立Java库?,java,parsing,filter,ldap,Java,Parsing,Filter,Ldap,我正在寻找一个独立的Java库,它允许我解析LDAP风格的过滤器表达式。这样的东西是否可用,或者是否建议使用ANTLR来代替,并自行构建它 作为背景:过滤器本身是通过网络提交的,我想创建适当的hibernate标准我没有用LDAP做任何事情 对于传输和转换用户定义查询的独立于技术的解决方案的任何其他想法,我也表示赞赏。我所知道的唯一LDAP解析库是.NET ones System.DirectoryServices。*理论上,您应该能够在Mono中使用此库以获得技术独立性(而不是从Mono或.N

我正在寻找一个独立的Java库,它允许我解析LDAP风格的过滤器表达式。这样的东西是否可用,或者是否建议使用ANTLR来代替,并自行构建它

作为背景:过滤器本身是通过网络提交的,我想创建适当的hibernate标准我没有用LDAP做任何事情


对于传输和转换用户定义查询的独立于技术的解决方案的任何其他想法,我也表示赞赏。

我所知道的唯一LDAP解析库是.NET ones System.DirectoryServices。*理论上,您应该能够在Mono中使用此库以获得技术独立性(而不是从Mono或.NET本身).

作为OpenLDAP的一部分,您看过jldap了吗


和,并且有用于解析LDAP URL和搜索表达式的类。这超出了您的需要,但如果您想这样做,您可以只使用对象,而无需实际对LDAP服务器执行它们。

您也可以考虑使用它的一些类,如lavinio对OpenLDAP的建议,或者将其嵌入到您的应用程序中。

为了澄清,如果不尝试查询LDAP,是否将它们设置为LDAP syle查询

你看过这样的东西吗


您可以使用apache directory server的共享LDAP库

可在maven的

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

大多数OSGi容器也包含此功能,因为。

在一个名为LDAPFilter的类上有一个静态方法,该类简单地称为decode,它接受一个字符串参数,如下所示:

LDAPFilter parsed = LDAPFilter.decode(filter);
javadoc是

它与ApacheDS的FilterParser非常相似,尽管处理结果有点不同,因为没有真正的继承层次结构。我发现的一个优点是,它没有重写可扩展的匹配规则语法,因此,如果您将此视为验证和规范过滤器的一种方法,则需要记住这一点

需要注意的是,这两个解析器都希望事先过滤掉空白,因此请确保事先在任何输入字符串上运行类似的操作:

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

希望这有帮助。

有趣,但不是我想要的。在一个例子中,我确实直接查询java对象,但我也使用相同的查询来构造SQL或Hibernate查询。
filter.replaceAll("\\s?([\\(\\|&!=:\\)])\\s?", "$1");