Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using the LDAP user manager breaks on 3.2+ #775

Open
hugoboos opened this issue Oct 24, 2016 · 6 comments
Open

Using the LDAP user manager breaks on 3.2+ #775

hugoboos opened this issue Oct 24, 2016 · 6 comments

Comments

@hugoboos
Copy link

Hi,

We are using the LDAP user manager.
After updating to 3.5 this does not work anymore.

It looks that is has something to do with the Apache Mina library. In Azkaban version 1.1.7 is used and in the LDAP user manager version 2.0.13.
With Azkaban 3.0.0 this was already the case.

The stack trace:

Exception in thread "pool-2-thread-1" java.lang.IncompatibleClassChangeError: Class org.apache.mina.filter.codec.ProtocolCodecFilter does not implement the requested interface org.apache.mina.core.filterchain.IoFilter
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.register(DefaultIoFilterChain.java:381)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.addLast(DefaultIoFilterChain.java:189)
    at org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder.buildFilterChain(DefaultIoFilterChainBuilder.java:496)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.addNow(AbstractPollingIoProcessor.java:504)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.handleNewSessions(AbstractPollingIoProcessor.java:479)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:68)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1088)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
org.apache.directory.ldap.client.api.exception.InvalidConnectionException: Cannot connect on the server, the connection is null
    at org.apache.directory.ldap.client.api.LdapNetworkConnection.checkSession(LdapNetworkConnection.java:274)
    at org.apache.directory.ldap.client.api.LdapNetworkConnection.bindAsync(LdapNetworkConnection.java:1287)
    at org.apache.directory.ldap.client.api.LdapNetworkConnection.bind(LdapNetworkConnection.java:1198)
    at org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:127)
    at org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:112)
    at net.researchgate.azkaban.LdapUserManager.getLdapConnection(LdapUserManager.java:277)
    at net.researchgate.azkaban.LdapUserManager.getUser(LdapUserManager.java:110)
    at azkaban.webapp.servlet.LoginAbstractAzkabanServlet.createSession(LoginAbstractAzkabanServlet.java:344)
    at azkaban.webapp.servlet.LoginAbstractAzkabanServlet.createSession(LoginAbstractAzkabanServlet.java:338)
    at azkaban.webapp.servlet.LoginAbstractAzkabanServlet.handleAjaxLoginAction(LoginAbstractAzkabanServlet.java:376)
    at azkaban.webapp.servlet.LoginAbstractAzkabanServlet.doPost(LoginAbstractAzkabanServlet.java:303)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
@kunkun-tang
Copy link
Contributor

@hugoboos I'm not aware of any LDAP change inside Azkaban since AZ 3.0.0.

@hugoboos
Copy link
Author

I did some more testing with other versions. Version 3.1.0 works, 3.2.0 does not.

To be clear. The LDAP functionality is not part of Azkaban, but added via a plugin.

@kunkun-tang
Copy link
Contributor

Yes, I know.
You mean AZ 3.1.0 is compatible with this LDAP 2.0.13, but AZ 3.2.0 can not ?

@hugoboos
Copy link
Author

Yes that is correct. From 3.2.0 it does not work anymore. And i'm getting those errors.

@jwoschitz
Copy link

jwoschitz commented Mar 13, 2017

Hello,

this issue has been addressed in researchgate/azkaban-ldap-usermanager@ce3201d by providing shadowed dependencies for the Apache Mina library.

The fix is also part of the 1.1.0 release of azkaban-ldap-usermanager

The changes should be compatible to any Azkaban version >= 2.5.0. We tested it with 3.0.0, 3.2.0 and 3.16.0 (latest) builds.

@HappyRay
Copy link
Contributor

Thanks @jwoschitz !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants