用于 LDAP 的轻量级 Java API

Posted

技术标签:

【中文标题】用于 LDAP 的轻量级 Java API【英文标题】:Light weight Java API for LDAP 【发布时间】:2012-08-09 15:24:06 【问题描述】:

我想使用 LDAP(Iplanet 或 Open DS)为我的新开源 Java 项目验证用户名和密码,尽管针对数据库进行了验证。

我想做的主要活动是: 1)验证用户名和密码 2) 将用户或组添加到目录服务器 3) 将用户分配到组。

任何提供快速学习曲线的轻量级 Java API。

【问题讨论】:

我不知道你叫什么轻量级,但Spring LDAP 可以胜任这项工作。 【参考方案1】:

我对@9​​87654321@ 有很好的体验。它只是一个 jar,有很好的文档,非常用户友好的 API,与 JNDI 相比,a lot of advantages。

我特别喜欢它的 ORM 框架,它可以轻松地将 LDAP 记录映射到 Java 对象。

【讨论】:

【参考方案2】:

我的第一选择是UnboundID LDAP SDK。出于各种原因,不应将 JNDI 用于新代码:

JNDI 使用的 LDAP 模型不干净,也不清楚 JNDI 中存在许多软件缺陷,以及一些使某些 LDAP 操作无法进行的构造 从 LDAP 标准的角度来看,JNDI 并不完全兼容 JNDI 使用断开连接的配置架构,这使得 JNDI 难以使用

UnboundID LDAP SDK

比 JNDI 更干净 比JNDI更清晰 支持故障转移和负载平衡 支持本地化 使语法和匹配规则的使用变得容易 学习曲线更短,比 JNDI 更易于使用 支持异步操作 支持内存目录服务器,可用于单元测试

另见

LDAP: Programming Practices

【讨论】:

【参考方案3】:

您可以使用 JNDI 完成所有这些工作:

http://www.oracle.com/technetwork/java/jndi/index.html

如果您使用教程页面,您将看到您想要做的每件事的示例: http://docs.oracle.com/javase/jndi/tutorial/

有一个框架让它变得更容易:http://today.java.net/pub/a/today/2006/04/18/ldaptemplate-java-ldap-made-simple.html

但我真的不推荐它,如果您正在执行大量 JNDI 项目,这确实是一种管理开销的方法,而不是让单个项目更容易的方法。做 JNDI 的开销只是一次性的事情,一旦你设置了它,你就不必再碰它了。如果您有任何问题,请在此处发布,我们会解决的。 :)

-t.

【讨论】:

以上是关于用于 LDAP 的轻量级 Java API的主要内容,如果未能解决你的问题,请参考以下文章

LDAP学习

LDAP的作用与实现

zhanwei

Spring Security LDAP简介

LDAP-轻量级目录访问协议(统一认证)

了解LDAP协议数据结构与条目组件