加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何通过LDAP SSL启用连接池?

发布时间:2020-12-15 02:21:54 所属栏目:Java 来源:网络整理
导读:好的,所以我将我的应用程序从非SSL连接到我的LDAP服务器的SSL连接.在非SSL中运行应用程序时,连接池工作正常.但是当我切换到SSL时,连接池不再有效. 在研究here时,我意识到我从未将“com.sun.jndi.ldap.connect.pool.protocol”属性设置为“plain ssl”,因为默
好的,所以我将我的应用程序从非SSL连接到我的LDAP服务器的SSL连接.在非SSL中运行应用程序时,连接池工作正常.但是当我切换到SSL时,连接池不再有效.

在研究here时,我意识到我从未将“com.sun.jndi.ldap.connect.pool.protocol”属性设置为“plain ssl”,因为默认情况下它设置为plain.我以为这就是问题所在.

当我实现更改以包含“plain ssl”时,它没有解决问题,并且仍然没有使用连接池.

我还缺少其他一些设置吗?

相关代码:

Hashtable LDAPEnvironment = new Hashtable();
    LDAPEnvironment.put(Context.SECURITY_AUTHENTICATION,SECURITY_AUTHENTICATION);
    LDAPEnvironment.put(Context.SECURITY_PRINCIPAL,SECURITY_PRINCIPAL);
    LDAPEnvironment.put(Context.SECURITY_CREDENTIALS,SECURITY_CREDENTIALS);
    LDAPEnvironment.put(Context.INITIAL_CONTEXT_FACTORY,INITIAL_CONTEXT_FACTORY);
    LDAPEnvironment.put(Context.PROVIDER_URL,PROVIDER_URL );
    LDAPEnvironment.put(Context.SECURITY_AUTHENTICATION,"simple");
    LDAPEnvironment.put("java.naming.ldap.version",versionOfLDAP );

    if (ldapProtocol != null && ldapProtocol.equalsIgnoreCase("SSL")){
        LDAPEnvironment.put(Context.SECURITY_PROTOCOL,"ssl");
        LDAPEnvironment.put("com.sun.jndi.ldap.connect.pool.protocol","plain ssl");
    }

    LDAPEnvironment.put("com.sun.jndi.ldap.connect.pool","true");

解决方法

我发现了这个问题.该文档明确指出这些属性是系统属性而不是环境属性.我将它们设置为环境属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读