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

No LoginModule found for ScramLoginModule #237

Closed
KatePopkova opened this issue Feb 1, 2022 · 2 comments · Fixed by #238
Closed

No LoginModule found for ScramLoginModule #237

KatePopkova opened this issue Feb 1, 2022 · 2 comments · Fixed by #238

Comments

@KatePopkova
Copy link

Hello,

We have updated Zeebe version (from 0.26 to 1.2.9) including Kafka exporter version (from 2.0.0 to 3.0.0) and started to it for our projects. The problem is new version of Kafka exporter does not work for now. You can see a trace log in the screenshot:

image (1) (1)

Therefore I cannot find any messages in a Kafka topic where Kafka exporter must produce.

We have managed to find a ticket (#78) where @npepinpe advised to put JAR file into /usr/local/zeebe/lib path and JAR is placed in correct path for now but there is still the same issue.

It seems there is no same issue in the previous version of the Kafka exporter (that was compatible for earlier Zeebe version) and sasl.jaas.config is the same for both (older and newer) Zeebe versions:

sasl.jaas.config = org.apache.kafka.common.security.scram.ScramLoginModule required username='user' password='user_pwd'

There is one more thing. It seams there is no ScramLoginModule class into zeebe-kafka-exporter-3.0.0-jar-with-dependencies.jar:

find . -name "Scram*.class" -type file
./org/apache/kafka/common/security/scram/ScramCredentialCallback.class
./org/apache/kafka/common/security/scram/internals/ScramCredentialUtils.class
./org/apache/kafka/common/security/scram/internals/ScramMechanism.class
./org/apache/kafka/common/security/scram/internals/ScramServerCallbackHandler.class
./org/apache/kafka/common/security/scram/ScramCredential.class
./org/apache/kafka/common/security/scram/ScramExtensionsCallback.class

Kafka exporter uses kafka-clients v. 2.8.0 (https://github.com/camunda-community-hub/zeebe-kafka-exporter/blob/3.0.0/pom.xml#L47), but kafka-clients includes that class:

find . -name "Scram*.class" -type file
./org/apache/kafka/clients/admin/ScramCredentialInfo.class
./org/apache/kafka/clients/admin/ScramMechanism.class
./org/apache/kafka/common/security/scram/ScramCredentialCallback.class
./org/apache/kafka/common/security/scram/internals/ScramExtensions.class
./org/apache/kafka/common/security/scram/internals/ScramMessages$AbstractScramMessage.class
./org/apache/kafka/common/security/scram/internals/ScramMessages$ClientFinalMessage.class
./org/apache/kafka/common/security/scram/internals/ScramMessages$ServerFinalMessage.class
./org/apache/kafka/common/security/scram/internals/ScramSaslServerProvider.class
./org/apache/kafka/common/security/scram/internals/ScramSaslServer$ScramSaslServerFactory.class
./org/apache/kafka/common/security/scram/internals/ScramFormatter.class
./org/apache/kafka/common/security/scram/internals/ScramSaslClient.class
./org/apache/kafka/common/security/scram/internals/ScramSaslClient$1.class
./org/apache/kafka/common/security/scram/internals/ScramSaslClient$ScramSaslClientFactory.class
./org/apache/kafka/common/security/scram/internals/ScramSaslServer$State.class
./org/apache/kafka/common/security/scram/internals/ScramSaslServer.class
./org/apache/kafka/common/security/scram/internals/ScramCredentialUtils.class
./org/apache/kafka/common/security/scram/internals/ScramSaslServer$1.class
./org/apache/kafka/common/security/scram/internals/ScramMechanism.class
./org/apache/kafka/common/security/scram/internals/ScramSaslClientProvider.class
./org/apache/kafka/common/security/scram/internals/ScramSaslClient$State.class
./org/apache/kafka/common/security/scram/internals/ScramMessages.class
./org/apache/kafka/common/security/scram/internals/ScramMessages$ClientFirstMessage.class
./org/apache/kafka/common/security/scram/internals/ScramServerCallbackHandler.class
./org/apache/kafka/common/security/scram/internals/ScramMessages$ServerFirstMessage.class
./org/apache/kafka/common/security/scram/ScramCredential.class
./org/apache/kafka/common/security/scram/ScramExtensionsCallback.class
./org/apache/kafka/common/security/scram/ScramLoginModule.class

Could you, please, help us to sort this issue out?
Thank you in advance.

@npepinpe
Copy link
Collaborator

npepinpe commented Feb 1, 2022

I think I might have some idea of why this is happening, but I haven't tested it. It might be that the shade plugin is removing what it sees as unused classes, which is why it ends up missing at runtime. It might be interesting to swap out the shade plugin for the assembly plugin instead. That's a little more verbose, but it's also easier to understand what the assembly plugin does, as opposed to the shade plugin.

I unfortunately don't really have the time to maintain this extension anymore, but I'm happy to review any PRs and trigger a release until a new maintainer is found/takes over.

By the way, thanks for the research and well explained issue, what you wrote helped me immediately pin point a lead 👍 Still remains to be seen if I'm right, but I think it's a good start 🙂

@KatePopkova
Copy link
Author

@npepinpe Hello Nicolas,
Thank you for your advice. I am not build a new JAR file as you advised before with the another plugin but I have done a workaround. I have just tried to put JAR of kafka-clients near Kafka exporter JAR. But it does not help and the issue is still here. If you have more ideas about it, let me know, please.

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

Successfully merging a pull request may close this issue.

2 participants