I've been trying to test the 'unboundid' library with Sakai 12.4. I've applied patches for:
however, I'm running an intermittent exception (see below). It seems like it happens most often just after starting up the Sakai server. But if I try to login again or after a few tries, it works. But then if I leave the system idle for a few minutes (user cache expires?), it will fail again.
I asked our system admin to check the ldap server's logs and he mentioned that he,
01-Oct-2018 13:55:28.630 SEVERE [http-nio-8980-exec-1] org.apache.catalina.core.ApplicationDispatcher.invoke Servlet.service() for servlet [sakai.login] threw exception
java.lang.RuntimeException: searchDirectory(): RuntimeException while executing search [baseDN = null][filter = uid=MYUSERNAME][return attribs = null][max results = 1]
at org.sakaiproject.unboundid.UnboundidDirectoryProvider.searchDirectory(UnboundidDirectoryProvider.java:918)
at org.sakaiproject.unboundid.UnboundidDirectoryProvider.searchDirectoryForSingleEntry(UnboundidDirectoryProvider.java:810)
at org.sakaiproject.unboundid.UnboundidDirectoryProvider.getUserByEid(UnboundidDirectoryProvider.java:736)
at org.sakaiproject.unboundid.UnboundidDirectoryProvider.getUserByEid(UnboundidDirectoryProvider.java:699)
at org.sakaiproject.unboundid.UnboundidDirectoryProvider.getUser(UnboundidDirectoryProvider.java:526)
at org.sakaiproject.user.impl.BaseUserDirectoryService.getProvidedUserByEid(BaseUserDirectoryService.java:752)
at org.sakaiproject.user.impl.BaseUserDirectoryService.getUserByEid(BaseUserDirectoryService.java:882)
at org.sakaiproject.user.impl.BaseUserDirectoryService.getInternallyAuthenticatedUser(BaseUserDirectoryService.java:1680)
at org.sakaiproject.user.impl.BaseUserDirectoryService.authenticate(BaseUserDirectoryService.java:1665)
at org.sakaiproject.user.impl.UserAuthnComponent.authenticate(UserAuthnComponent.java:107)
at edu.gatech.sakai.user.impl.GaTechUserAuthnComponent.authenticate(GaTechUserAuthnComponent.java:36)
at org.sakaiproject.login.impl.LoginServiceComponent.authenticate(LoginServiceComponent.java:90)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:418)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:470)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:356)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:316)
at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.help(ActiveToolComponent.java:583)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.doLogin(SkinnableCharonPortal.java:966)
at org.sakaiproject.portal.charon.handlers.XLoginHandler.doGet(XLoginHandler.java:61)
at org.sakaiproject.portal.charon.handlers.XLoginHandler.doPost(XLoginHandler.java:50)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1171)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:467)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: LDAPException(resultCode=81 (server down), numEntries=0, numReferences=0, diagnosticMessage='The connection to server MYTESTSERVER:MYPORT was closed while waiting for a response to search request SearchRequest(baseDN='MYBASEDN', scope=SUB, deref=NEVER, sizeLimit=1, timeLimit=9000, filter='uid=MYUSERNAME', attrs={uid, givenName, sn, mail}): An I/O error occurred while trying to read the response from the server: SocketException(Connection reset), ldapSDKVersion=4.0.8, revision=28812'')
at com.unboundid.ldap.sdk.SearchRequest.process(SearchRequest.java:1234)
at com.unboundid.ldap.sdk.LDAPConnection.search(LDAPConnection.java:3757)
at com.unboundid.ldap.sdk.AbstractConnectionPool.search(AbstractConnectionPool.java:2056)
at com.unboundid.ldap.sdk.AbstractConnectionPool.search(AbstractConnectionPool.java:1789)
at org.sakaiproject.unboundid.UnboundidDirectoryProvider.searchDirectory(UnboundidDirectoryProvider.java:877)
... 55 more