繁体   English   中英

LDAP响应超时不适用于Unboundid SDK

[英]LDAP Response timeout not working with Unboundid SDK

我正在尝试使用Unboundid LDAP SDK获取所有groupOfUniqueNames对象的名称。 我能够做到,但是如果服务器上有很多条目,就会出现问题。 设置响应超时似乎被忽略了,程序只是挂起(等待较大的响应),而不是在5000毫秒后终止。

我了解到我可以使用分页一次返回一定数量的用户,但是,我担心为什么超时不起作用。

SearchResult searchResult;

    Filter filter = 
            Filter.createEqualityFilter("objectClass", "groupOfUniqueNames");

    try {
        SearchRequest searchRequest = new SearchRequest(baseDN, SearchScope.SUB, filter, "uniqueMember", "member");

        searchRequest.setResponseTimeout(5000);
        System.out.println(searchRequest.getResponseTimeout(connection));   // prints 5000

        searchResult = connection.search(searchRequest);

    } catch(LDAPSearchException e) {
        e.printStackTrace();
    }

    for (SearchResultEntry entry : searchResult.getSearchEntries()) {
        String name = entry.getDN();
        System.out.println(name);
    }

让我感到困惑的是,上面的代码将始终挂起,但是我进行了其他适当的超时搜索(错误85-客户端超时)。

忽略客户端超时的特定查询的原因可能是什么? 无论如何, 这里的文档听起来都像是在5000毫秒后,程序将停止等待响应。

谢谢

尝试同步模式,即在连接服务器之前执行此操作:

connectionOptions.setUseSynchronousMode(true);
// more options
connection.setConnectionOptions(connectionOptions);

我有类似的问题:

LDAP Error Code 85 - A client-side timeout was encountered

就我而言,我必须为SSL连接配置SSL。 例如,将其视为临时实现:

 SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager());
 SSLSocketFactory sslSocketFactory = sslUtil.createSSLSocketFactory();
 LDAPConnection connection = new LDAPConnection(sslSocketFactory);

https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/util/ssl/SSLUtil.html

我认为在这种情况下,有关“超时”的说法非常令人困惑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM