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

时间:2008-12-03 16:27:52

标签: java web-applications ldap

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

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

我也担心Penrose的GPL问题。我不能自由地向GPL提供应用程序的源代码。我不认为这是独立运行它的问题,但嵌入它可能是不 - 没有人知道吗?许可许可证是好的,以避免这些问题。

要求:

  1. LDAP v3
  2. 必须能够在运行时更新目录内容,无论是以编程方式还是通过其他方式(如Penrose与数据库同步)
  3. 易于配置(在部署时无需为应用程序提供额外配置)
  4. 到目前为止,我简要地查看过似乎可以嵌入的ApacheDSOpenDS

    有没有人有这方面的经验?

4 个答案:

答案 0 :(得分:8)

你应该看看Apache DS。我只是started using it as an embedded server来设置JUnit测试。到目前为止它工作得很好,现在唯一阻止我的是我有限的LDAP知识。 ApacheDS看起来像一个体面的项目,我认为这是值得的。

答案 1 :(得分:5)

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

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

答案 2 :(得分:4)

我自己从未这样做过,但是你可以轻松地使用Spring Security set up an embedded Apache Directory server,只需要最少的Spring XML配置。

答案 3 :(得分:2)

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

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