Skip to content

Spring Kafka with GraalVM - org.apache.kafka.common.errors.SaslAuthenticationException: Failed to create SaslClient with mechanism PLAIN #2545

Open
@Richardmbs12

Description

@Richardmbs12

In what version(s) of Spring for Apache Kafka are you seeing this issue?

3.0.1

Describe the bug
I am still new to Spring boot 3 aot. Best I can describe it is that I've used the spring boot 3 native profile defaults, but I get the following error only on graalvm, not on the JVM:

org.apache.kafka.common.errors.SaslAuthenticationException: Failed to configure SaslClientAuthenticator
--
Caused by: org.apache.kafka.common.errors.SaslAuthenticationException: Failed to create SaslClient with mechanism PLAIN
2023-01-12T14:54:57.583Z  WARN 9 --- [ad \| producer-1] org.apache.kafka.clients.NetworkClient   : [Producer clientId=producer-1] Error connecting to node dsbggena117v.standardbank.co.za:9092 (id: -2 rack: null)
java.io.IOException: Channel could not be created for socket java.nio.channels.SocketChannel[closed]
at org.apache.kafka.common.network.Selector.buildAndAttachKafkaChannel(Selector.java:348) ~[na:na]
at org.apache.kafka.common.network.Selector.registerChannel(Selector.java:329) ~[na:na]
at org.apache.kafka.common.network.Selector.connect(Selector.java:256) ~[na:na]
at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:992) ~[na:na]
at org.apache.kafka.clients.NetworkClient.access$600(NetworkClient.java:73) ~[na:na]
at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:1163) ~[na:na]
at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:1051) ~[na:na]
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:558) ~[na:na]
at org.apache.kafka.clients.NetworkClientUtils.isReady(NetworkClientUtils.java:42) ~[na:na]
at org.apache.kafka.clients.NetworkClientUtils.awaitReady(NetworkClientUtils.java:64) ~[na:na]
at org.apache.kafka.clients.producer.internals.Sender.awaitNodeReady(Sender.java:534) ~[na:na]
at org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:455) ~[na:na]
at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:316) ~[na:na]
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:243) ~[na:na]
at java.base@17.0.5/java.lang.Thread.run(Thread.java:833) ~[payment-validation:na]
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775) ~[payment-validation:na]
at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203) ~[na:na]
Caused by: org.apache.kafka.common.KafkaException: org.apache.kafka.common.errors.SaslAuthenticationException: Failed to configure SaslClientAuthenticator
at org.apache.kafka.common.network.SaslChannelBuilder.buildChannel(SaslChannelBuilder.java:240) ~[na:na]
at org.apache.kafka.common.network.Selector.buildAndAttachKafkaChannel(Selector.java:338) ~[na:na]
... 16 common frames omitted
Caused by: org.apache.kafka.common.errors.SaslAuthenticationException: Failed to configure SaslClientAuthenticator
Caused by: org.apache.kafka.common.errors.SaslAuthenticationException: Failed to create SaslClient with mechanism PLAIN

To Reproduce
Any project with spring boot 3.0.1, spring-kafka and the following configuration in the application.yml

spring:
  config:
    activate:
      on-profile: dev
  kafka:
    bootstrap-servers:
      - "XXX"
    jaas:
      loginModule: org.apache.kafka.common.security.plain.PlainLoginModule
      options:
        username: "XXX"
        password: "XXX"
      enabled: true
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
      ssl:
        trust-store-type: PEM
        trust-store-location: file:/opt/cacrt/my-cachain.pem
    properties:
      sasl:
        mechanism: PLAIN
      security:
        protocol: SASL_SSL
    admin:
      ssl:
        trust-store-type: PEM
        trust-store-location: file:/opt/cacrt/my-cachain.pem

Expected behavior
I expect the required reflections and hints to be available and not receive this error that I am not sure how to resolve.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions