用于查询LDAP的Java API

sar*_*n07 6 java ldap active-directory

我期待查询LDAP服务器从中检索所有用户条目.我遇到过一些图书馆

  1. OpenLDAP的
  2. LDAP SDK
  3. Mozilla目录
  4. Apache Directory API

我的要求是查询LDAP实现中的所有用户,如AD Server,编程的简易性以及库周围的良好社区.我在这里找不到明确的赢家.有人能告诉我广泛使用的强大API吗?

小智 12

不得不进入 Java LDAP SDK 市场,因为需要修复一些带有 SDK 错误的旧 LDAP JAVA 程序,而且我已经有一段时间失去了支持的 Java LDAP API 的最新概述。一些研究让我看到了几个陈旧的概述和这个相当古老的线程。我想,我只想在这里分享我最新的 SDK 发现。

截至今天,Java LDAP SDK 市场似乎提供了以下内容:

  • jLDAP(Novell Java LDAP SDK)、OpenLDAP Java SDK(Novell LDAP SDK 的兄弟分支)、Netscape/Sun Java LDAP SDK、OpenDS LDAP SDK:所有 4 个存储库似乎实际上已死/未维护好几年(其中一些已经十年了) 现在。看不到支持公司或活跃的社区。

  • Oracle LDAP SDK:基本上是以前的 Netscape/Sun Java SDK,有付费的 Oracle 支持,但也没有维护。甚至不存在于开源世界。

  • OpenDJ Java LDAP SDK:后盾公司已经离开开源市场,不再维护这个SDK。最新的 SDK 版本 3.0.0 已经有好几年了,从未离开 beta 阶段,最新的正式发布版本更旧:2.6.11。SDK 的商业版本据说也几乎被放弃了。

  • ldaptive.org:一些大学项目。以前的 JNDI 包装器,但现在声称拥有自己的 LDAP SDK 协议实现。大学外围似乎没有社区或用户。没有死,但目前还不清楚,这里可以期待什么质量状态。如果你问我,这个项目会做得更好,花时间支持 Apache LDAP SDK 项目,因为实际上没有人需要再看看-妈妈-我-也-做了-一个 LDAP-Client-SDK在一个充斥着其他大多数平庸的 JAVA LDAP SDK 的饱和市场中。

  • Apache LDAP SDK:与其他 Apache 项目相比,LDAP SDK 显示出非常缓慢的速度。不知何故,Apache LDAP 似乎错过了一个真正的公司支持的东西,它只是有才华的爱好爱好者推动事情向前发展。您可能不想使用 SDK V1.0 启动任何新项目,因为它们声明 V2.0 破坏了接口代码。但是您可能还不想使用 SDK V2.0,因为它仍然是 beta 版本,没有人知道它会保持 beta 多长时间(V1 保持 beta 6 年......)。SDK 远未消亡,它只是表现出非常缓慢的进展。

  • Java JNDI:内置于 Java 中,自发布以来一直没有改变。编码仍然非常丑陋,文档是一团糟,基本搜索之外的每项任务都是实现的噩梦,基本上每个项目都无法正确实现它,有几件事被设计破坏了。似乎有一些关于未来 JDK 的 JNDI-LDAP 继任者的概念想法,但到目前为止还没有任何进展。

  • 未绑定的SDK:成熟的,维护得最好的SDK,具有大量的功能,尽管支持公司仍然是从风险投资中培养出来的,烧钱。到目前为止,看起来他们不会很快站起来。因此,SDK 支持的长期方面尚不清楚。商业项目中 SDK 的前党派人士曾经是它的 GPL 许可证。开源版本现在似乎也有 LGPL 许可证(可能适合也可能不适合项目)。

  • Spring:看起来像一个稳定的 LDAP SDK,加上拥有庞大的 Spring 社区。但功能较少,也没有前沿的东西。个人还没有使用这个 SDK 的经验。

所以现在,Java LDAP 似乎有四种合理的选择:JNDI、Unbound、Spring、Apache,每种都有其优缺点。一旦你开始使用它,你可能会非常讨厌 JNDI。一个很好的建议可能是,不要急于进行旧 SDK 的迁移项目,而是投入额外的精力来实现包装器代码,以便在以后需要时能够轻松地切换 SDK。


Ter*_*ner 10

与Java一起使用的最佳API是UnboundID LDAP SDK.它清晰,完整,完全实现了LDAP标准规范,易于使用和理解,完全记录,线程安全应该在哪里,标准版是免费的.没有其他API甚至接近.

也可以看看

  • 这在 2019 年仍然适用吗?谢谢 (4认同)