什么是优秀的可嵌入Java LDAP服务器?

我正在开发一个Java Web应用程序,它与其他一些部署的外部应用程序集成在一起。 身份validation信息必须跨所有内容同步,其他应用程序需要针对LDAP进行身份validation。 该应用程序将部署在没有其他LDAP服务器可供使用的环境中; 我必须提供它。 到目前为止,我的解决方案是将Penrose Server用作独立应用程序,我将其设置为检查主应用程序数据库中的表并基于此发布LDAP。 它运行良好,但有一些东西可以嵌入到主应用程序本身以简化部署,这将是很好的。

看起来Penrose可以嵌入,但文档可能有点不稳定或过时(虽然它似乎是积极开发的)。 它可能是一个可接受的解决方案,但如果有另一个已知在嵌入式配置中运行良好的我可能想要检查它。

我也担心Penrose的GPL问题。 我不能自由地向GPL申请该应用程序的源代码。 我不相信这是独立运行它的问题,但嵌入它可能是不 – 没有…任何人都知道吗? 许可许可证是好的,以避免这些问题。

要求:

  1. LDAP v3
  2. 必须能够在运行时更新目录内容,无论是以编程方式还是通过其他方式,如Penrose与数据库同步
  3. 易于配置(在部署时无需为应用程序提供额外配置)

到目前为止,我简要地看了一下似乎可以嵌入的ApacheDS和OpenDS 。

有没有人有这种经历?

你应该看看Apache DS 。 我刚开始使用它作为嵌入式服务器来设置JUnit测试。 到目前为止它工作得很好,现在唯一阻止我的是我有限的LDAP知识。 ApacheDS看起来像一个体面的项目,我认为这是值得的。

由于这个问题已经有一段时间没有得到答复了,我想建议你也考虑Penrose的商业许可证 – 当GPL的影响令人望而却步时,它就像你一样获得双重许可。 我不知道他们的价格和型号,但是使用你已经知道的解决方案比习惯你需要习惯的另一种解决方案可能更容易也更便宜。 你可以用你的钱或你的时间付钱……

另外 – 对于记录,在这种情况下不适用:当项目使用GPL并且您希望以非GPL方式嵌入它们时,可能需要向开发人员申请更宽松的许可证。 有些人根据GPL发布不考虑其含义。 如果这意味着更广泛地使用项目,您可能会让他们更改许可证。 其他人特别想要GPL的含义,但总是要问。 彭罗斯已经考虑过这个并提供商业许可证。

我自己从未这样做过,但您可以使用Spring Security轻松设置嵌入式Apache Directory服务器 ,只需要最少的Spring XML配置。

我花了几天时间考虑将我们的内部应用程序用户数据库暴露为LDAP服务。 我最初看了一下apache-ds,虽然它似乎是一个非常强大的目录服务,它扩展它以暴露关系数据库,这是令人费解的复杂。

已经确定了penrose,因为它似乎提供了一个非常好的解决方案,设法在大约2小时内对解决方案进行原型设计。