[BUG] ClassNotFoundException: io.streamnative.pulsar.handlers.amqp.authentication.AuthenticationProviderBasic
Describe the bug
I am trying to configure Basic AMQP authentication using apachepulsar/pulsar
Docker image + AoP. I can successfully install the protocol handler. When I register the io.streamnative.pulsar.handlers.amqp.authentication.AuthenticationProviderBasic provider in the standalone.conf authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderBasic,io.streamnative.pulsar.handlers.amqp.authentication.AuthenticationProviderBasic I get a ClassNotFoundException :
2023-03-23T16:15:58,773+0000 [main] ERROR org.apache.pulsar.broker.PulsarService - Failed to start Pulsar service: Failed to load an authentication provider.
org.apache.pulsar.broker.PulsarServerException: Failed to load an authentication provider.
at org.apache.pulsar.broker.authentication.AuthenticationService.<init>(AuthenticationService.java:81) ~[org.apache.pulsar-pulsar-broker-common-2.11.0.jar:2.11.0]
at org.apache.pulsar.broker.service.BrokerService.<init>(BrokerService.java:348) ~[org.apache.pulsar-pulsar-broker-2.11.0.jar:2.11.0]
at org.apache.pulsar.broker.PulsarService.newBrokerService(PulsarService.java:1839) ~[org.apache.pulsar-pulsar-broker-2.11.0.jar:2.11.0]
at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:756) ~[org.apache.pulsar-pulsar-broker-2.11.0.jar:2.11.0]
at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:348) ~[org.apache.pulsar-pulsar-broker-2.11.0.jar:2.11.0]
at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:141) ~[org.apache.pulsar-pulsar-broker-2.11.0.jar:2.11.0]
Caused by: java.lang.ClassNotFoundException: io.streamnative.pulsar.handlers.amqp.authentication.AuthenticationProviderBasic
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:375) ~[?:?]
at org.apache.pulsar.broker.authentication.AuthenticationService.<init>(AuthenticationService.java:57) ~[org.apache.pulsar-pulsar-broker-common-2.11.0.jar:2.11.0]
... 5 more
What am I doing wrong ?
To Reproduce Steps to reproduce the behavior:
- Write a Dockerfile to install the AoP NAR file in the
apachepulsar/pulsarimage - Add
io.streamnative.pulsar.handlers.amqp.authentication.AuthenticationProviderBasicto theauthenticationProvidersparameter in thestandalone.conffile. - Run the image with the command
bin/pulsar standalone - Look for the error in the logs.
Expected behavior The basic authentication provider for AMQP should register successfully.
Additional context Using Pulsar 2.11.0 and AoP 2.11.0.3
Note that the result is the same when I use the streamnative/sn-pulsar:2.10.3.6 image instead of building a custom image with only the AoP plugin.
2023-03-27T15:22:35,177+0000 [main] ERROR org.apache.pulsar.broker.PulsarService - Failed to start Pulsar service: Failed to load an authentication provider.
org.apache.pulsar.broker.PulsarServerException: Failed to load an authentication provider.
at org.apache.pulsar.broker.authentication.AuthenticationService.<init>(AuthenticationService.java:80) ~[io.streamnative-pulsar-broker-common-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.service.BrokerService.<init>(BrokerService.java:344) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.PulsarService.newBrokerService(PulsarService.java:1757) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:699) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:301) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:143) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
Caused by: java.lang.ClassNotFoundException: io.streamnative.pulsar.handlers.amqp.authentication.AuthenticationProviderBasic
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:315) ~[?:?]
at org.apache.pulsar.broker.authentication.AuthenticationService.<init>(AuthenticationService.java:56) ~[io.streamnative-pulsar-broker-common-2.10.3.6.jar:2.10.3.6]
... 5 more
2023-03-27T15:22:35,182+0000 [main] ERROR org.apache.pulsar.PulsarStandaloneStarter - Failed to start pulsar service.
org.apache.pulsar.broker.PulsarServerException: org.apache.pulsar.broker.PulsarServerException: Failed to load an authentication provider.
at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:840) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:301) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:143) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
Caused by: org.apache.pulsar.broker.PulsarServerException: Failed to load an authentication provider.
at org.apache.pulsar.broker.authentication.AuthenticationService.<init>(AuthenticationService.java:80) ~[io.streamnative-pulsar-broker-common-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.service.BrokerService.<init>(BrokerService.java:344) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.PulsarService.newBrokerService(PulsarService.java:1757) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:699) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
... 2 more
Caused by: java.lang.ClassNotFoundException: io.streamnative.pulsar.handlers.amqp.authentication.AuthenticationProviderBasic
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:315) ~[?:?]
at org.apache.pulsar.broker.authentication.AuthenticationService.<init>(AuthenticationService.java:56) ~[io.streamnative-pulsar-broker-common-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.service.BrokerService.<init>(BrokerService.java:344) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.PulsarService.newBrokerService(PulsarService.java:1757) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:699) ~[io.streamnative-pulsar-broker-2.10.3.6.jar:2.10.3.6]
... 2 more
Well, I finally noticed that the io.streamnative.pulsar.handlers.amqp.authentication.AuthenticationProviderBasic class does not exist in version 2.10.x . So my second comment is pointless.