5

我需要将 LDAP contextSource 放入我的 Java EE 容器的 JNDI 树中,以便容器内的应用程序可以使用它。

我正在使用 Spring-LDAP 对 ORACLE OVD 执行查询。对于开发,我只是在 Spring xml 配置文件中设置了 contextSource。但是,对于生产,我需要能够使用 JNDI 查找来从容器中获取连接/上下文(如此处建议:http: //forum.springframework.org/showthread.php?t=35122 &highlight=jndi )。我不允许访问生产 OVD 实例的 URL/用户名/密码,因此这似乎排除了将其放入 jndi.properties 文件的可能性。

理想情况下,我希望有一个连接池(就像 JDBC 一样),因为我的应用程序可能同时执行许多 LDAP 查询。从 JNDI 查找中获取对象并将其注入到我的 SimpleLdapTemplate 中似乎非常简单,但我不知道如何将连接/上下文/池放入 JNDI 树中。我需要构建它并将其打包成 RAR 吗?如果是这样,有哪些选项可以让运营团队以开发人员无法访问的方式指定 URL/用户名/密码?

我正在使用的特定容器是 OAS/OC4J,尽管我也欢迎其他容器上的策略。

4

3 回答 3

8

具体参考 LDAP 连接的实际池,如果您使用内置的 JNDI LDAP 提供程序,则连接已经使用类似于 JDBC 数据源的语义进行池化,其中为不同的 LDAP URL 和安全属性维护单独的池。

创建 JNDIDirContext时,将属性 com.sun.jndi.ldap.connect.pool 配置为true并启用池化。

这里有更多关于 LDAP 池的信息。

有关配置 LDAP 池的详细信息,请参见此处

于 2009-01-06T02:44:10.123 回答
0

您是否有机会设置 LDAP 的开发版本并使用它?然后您可以使用 jndi.properties 文件,该文件将是特定于环境的,但与您的系统无关。

编辑:这里的区别在于,当您构建应用程序时,您的管理员可以将其部署到生产系统,从而保护宝贵的 ldap 密码,因为它只存在于生产箱的属性文件中。

于 2008-12-02T18:10:36.233 回答
0

使用 jboss,您可以将外部 JNDI 上下文联合到 JBoss 服务器 JNDI 命名空间中。您所要做的就是在 MBean 配置文件中描述 LDAP 访问。您还可以启用缓存。

我们正在使用此解决方案来访问 Ative Directory 服务器。

http://www.jboss.org/community/docs/DOC-9726

于 2009-01-15T16:09:40.487 回答