我正在尝试解决导致引发以下异常的 CAS 问题:
javax.naming.TimeLimitExceededException: [LDAP: error code 3 - Timelimit Exceeded]; remaining name ''
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3097)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2987)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2794)
at com.sun.jndi.ldap.LdapNamingEnumeration.getNextBatch(LdapNamingEnumeration.java:129)
at com.sun.jndi.ldap.LdapNamingEnumeration.hasMoreImpl(LdapNamingEnumeration.java:198)
at com.sun.jndi.ldap.LdapNamingEnumeration.hasMore(LdapNamingEnumeration.java:171)
at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:295)
at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:361)...
几乎立即返回错误。客户端超时设置为 10 秒,但这并没有发生,因为根据查看 com.sun.jndi.ldap 代码,域控制器似乎正在返回状态为 3 的响应,表示超过时间限制。
我们正在访问 Active Directory 全局目录,我们的过滤器和基础非常广泛:base = '', filter = (proxyAddresses=*:someone@somewhere.com) 但是,查询有时会成功,但会立即返回状态代码 3 .
有谁知道可能导致这种行为的原因是什么?或者也许如何确定到底发生了什么?