gpt4 book ai didi

javax.naming.CommunicationException LDAP SSL InitialLdapContext

转载 作者:行者123 更新时间:2023-12-01 17:23:39 40 4
gpt4 key购买 nike

我在通过 SSL 使用 LDAP 时遇到了奇怪的问题。要进入应用程序,我们有登录窗口,用户可以在其中输入密码和用户名。如果他输入正确的内容,一切都会正常进行。但如果他输入错误,就会出现奇怪的问题。我收到了有关密码错误的错误消息,但这仍然可以。但是,如果他再次尝试输入,这次输入正确的密码/用户名(无需关闭应用程序),我会遇到以下异常:

javax.naming.CommunicationException: simple bind failed: X.X.X:636 [Root exception is javax.net.ssl.SSLException: java.lang.IllegalStateException: stream has already been operated upon or closed] 

用户最终需要重新启动应用程序才能输入正确的用户名/密码才能登录。有代码块:

Hashtable<String, String> t = new Hashtable<>();
.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
t.put(Context.PROVIDER_URL, "ldap://x.x.x:636"); // SSL Server
t.put(Context.SECURITY_PROTOCOL, "ssl");
t.put(Context.SECURITY_AUTHENTICATION, "simple");
t.put(Context.SECURITY_PRINCIPAL, userDn);
t.put(Context.SECURITY_CREDENTIALS, password);

return new InitialLdapContext(t, null);

最后一行导致异常,正如我在帖子中提到的。

最佳答案

我已经解决了。连接LDAP失败后需要重新导入证书。

关于javax.naming.CommunicationException LDAP SSL InitialLdapContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61244916/

40 4 0