【问题标题】:Is there a way to provide SocketFactory _instance_ to InitialLdapContext?有没有办法将 SocketFactory _instance_ 提供给 InitialLdapContext?
【发布时间】:2011-06-29 16:33:24
【问题描述】:

有一种静态方式将 SocketFactory 提供给 InitialLdapContext:

env.put("java.naming.ldap.factory.socket", MySocketFactory.class.getName());
new InitialLdapContext(env, null);

但是有没有办法提供实例本身而不是它的类名?我的套接字工厂使用受信任证书的输入流进行参数化,并且可以使用不同的受信任证书配置许多 InitialLdapContext 实例。顺便说一句,这将在 OSGi 环境中运行。

提前致谢。

【问题讨论】:

  • 我想做同样的事情 - 我之前问过这个问题 - 我目前正在使用线程本地存储来执行此操作 - 请参阅:stackoverflow.com/questions/6424422/…
  • 感谢您的提示。今天我玩了 Apache LDAP API,它更容易更干净:-)

标签: java ldap socketfactory


【解决方案1】:

检查com.sun.jndi.ldap.Connection.createSocket(String, int, String, int) 的来源我可以看到不幸的是没有办法做到这一点。很遗憾,这么多 Java 核心 API 的设计都很糟糕。

解决方案可能是使用不同的实现:

  • 网景 LdapSdk
  • OpenLDAP JLdap
  • Apache 目录 LDAP API

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多