I’m trying to implement Custom Event Listener in keycloak, I’ve managed to get the events that I was looking for and everything, but implementing Kafka is not going so well.
Just a heads up, I’m not the best at Java, so some concepts I might not know.
I’ve added to my pom.xml
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.7.0</version>
</dependency>
The maven recognized it, it’s listed under the dependencies
I’ve created a Producer class that I want to use on specific event:
When I drop the .jar file that I created while running ‘mvn clean install’ in Keycloaks event setting I get the:
KC-SERVICES0085: Failed to send type to it.aboutbits.CustomEventListenerProvider@3d0db5a6: java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/KafkaProducer
at it.aboutbits.Producer.publishEventToTopic(Producer.java:33)
at it.aboutbits.CustomEventListenerProvider.onEvent(CustomEventListenerProvider.java:40)
at org.keycloak.services.resources.admin.AdminEventBuilder.send(AdminEventBuilder.java:291)
at org.keycloak.services.resources.admin.AdminEventBuilder.success(AdminEventBuilder.java:273)
at org.keycloak.services.resources.admin.UserResource.deleteUser(UserResource.java:629)
at org.keycloak.services.resources.admin.UserResource$quarkusrestinvoker$deleteUser_1ab1e247046f32b48fb55de7f71f5540f6c8ea14.invoke(Unknown Source)
at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.clients.producer.KafkaProducer
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:115)
at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:65)
… 16 more
I’ve tried Googling this error quite a bit, but I haven’t found anything…
I’ve modified this repo