24

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

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

我还担心 Penrose 的 GPL 问题。我不能自由地 GPL 应用程序的源代码。我不相信独立运行它是一个问题,但嵌入它可能是不行的......有人肯定知道吗?为了避免这些问题,许可许可证会很好。

要求:

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

到目前为止,我已经简要介绍了似乎是可嵌入的ApacheDSOpenDS 。

有没有人有这种事情的经验?

4

4 回答 4

8

你应该看看Apache DS。我刚开始将它用作嵌入式服务器来设置 JUnit 测试。到目前为止它运行良好,现在唯一阻止我的是我有限的 LDAP 知识。ApacheDS 看起来是一个不错的项目,我认为值得付出努力。

于 2009-10-14T07:20:35.053 回答
5

由于这个问题已经有很长一段时间没有答案了,我想建议你也考虑一下 Penrose 的商业许可证——当 GPL 的含义令人望而却步时,它为像你这样的人提供了双重许可证。我不知道他们的价格和型号,但是使用您已经知道的解决方案可能比习惯您需要习惯的另一种解决方案更容易、更便宜。你可以用你的钱或你的时间来支付...

另外 - 作为记录,在这种情况下不适用:当项目使用 GPL 并且您想以非 GPL 方式嵌入它们时,向开发人员要求更宽松的许可证可能会有所帮助。有些人在 GPL 下发布时没有考虑其含义。如果这意味着项目的更广泛使用,您可能会让他们更改许可证。其他人特别想要 GPL 的含义,但问总是好的。Penrose 已经考虑到这一点,并提供了商业许可。

于 2008-12-14T10:13:51.573 回答
4

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

于 2010-01-05T01:49:10.720 回答
2

我刚刚花了几天时间研究将我们的内部应用程序用户 db 公开为 LDAP 服务。我最初看的是 apache-ds,虽然它似乎是一个非常强大的目录服务,扩展它以公开一个关系数据库,但它的复杂性令人麻木。

已经选择了 penrose,因为它似乎提供了一个很好的解决方案,并在大约 2 小时内成功地制作了一个解决方案的原型。

于 2009-03-17T13:49:39.103 回答