# Cannot connect to kafka

**URL:** <https://forum.confluent.io/t/cannot-connect-to-kafka/5019>\
**Category:** Clients\
**Created:** [9 May 2022 06:01 UTC](https://forum.confluent.io/t/cannot-connect-to-kafka/5019 "2022-05-09T06:01:15Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![aa07181](https://avatars.discourse-cdn.com/v4/letter/a/b4bc9f/32.png) [@aa07181](https://forum.confluent.io/u/aa07181)\
**Post date:** [9 May 2022 06:01 UTC](https://forum.confluent.io/t/cannot-connect-to-kafka/5019/1 "2022-05-09T06:01:15Z")

</div>

I use SSL, trust store, previously had network issues (SSL handshake failed), checked certificate chain for endpoint (imported them into key store), also got certificates for all bootstrap servers.  
Currently connecting still get error message:

`Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-512)`

---

<div class="post-metadata">

**Author:** ![vnadkarni](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.confluent.io/vnadkarni/32/1839_2.png) [@vnadkarni](https://forum.confluent.io/u/vnadkarni)\
**Post date:** [10 May 2022 10:03 UTC](https://forum.confluent.io/t/cannot-connect-to-kafka/5019/2 "2022-05-10T10:03:25Z")

</div>

Hi @aa07181 . I’m guessing you’re using a self-managed solution. Are you using Confluent Platform. How are you trying to connect?

---

<div class="post-metadata">

**Author:** ![aa07181](https://avatars.discourse-cdn.com/v4/letter/a/b4bc9f/32.png) [@aa07181](https://forum.confluent.io/u/aa07181)\
**Post date:** [10 May 2022 14:52 UTC](https://forum.confluent.io/t/cannot-connect-to-kafka/5019/3 "2022-05-10T14:52:32Z")

</div>

I have provider, he gave me couple of bootstrap servers, username and password. I am connecting using Java.

```auto
package client;

import java.io.IOException;

import java.net.InetSocketAddress;
import java.net.Socket;

import java.util.Arrays;
import java.util.Base64;
import java.util.Properties;

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;

public class Consumer {
    public Consumer() {
        super();
    }

    private static String getVariableData(String string) {

        if (string == "bootstrap_servers") bootstrapserver1
            return "bootstrapserver1.net:9091,bootstrapserver2.net:9092";

        if (string == "group.id.SIKAFKA")
            return "some_group_id";

        if (string == "topic.id.SIKAFKA")
            return "some_topic_id";
			
        if (string == "username")
            return "username";			

        if (string == "password")
            return "password";

        return "";
    }

    public static void main(String[] args) {
        try {

            ConsumerRecords<String, String> records;
            Properties props = new Properties();

            // Server
            props.put("bootstrap.servers", getVariableData("bootstrap_servers"));
            //Consumer group
            props.setProperty("group.id", getVariableData("group.id.SIKAFKA"));
            props.setProperty("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
            props.setProperty("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

            // Settings for authentication
            props.put("security.protocol", "SASL_SSL");
            props.put("sasl.mechanism", "SCRAM-SHA-512");

            props.put("ssl.truststore.location", "location");
            props.put("ssl.truststore.password", "password");
            props.put("ssl.truststore.type", "JKS");

            props.put("ssl.keystore.location", "location");
            props.put("ssl.keystore.password", "password");
            props.put("ssl.truststore.type", "JKS");

            props.put("ssl.endpoint.identification.algorithm", "");
            //props.put("dbms.jvm.additional", "-Djavax.net.debug=ssl:handshake");
            //props.put("ssl.enabled.protocols", "TLSv1.2,TLSv1.1,TLSv1,TLSv1.2,TLSv1.3");
            //props.put("ssl.protocol", "TLSv1.3");

            String jaasTemplate =
                "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"%s\" password=\"%s\";";
            String jaasCfg = String.format(jaasTemplate, getVariableData("username"), getVariableData("password"));
            props.put("sasl.jaas.config", jaasCfg);
            KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
            consumer.subscribe(Arrays.asList(getVariableData("topic.id.SIKAFKA")));

            System.out.printf("Start!");
            records = consumer.poll(1);
            System.out.printf("Started to poll!");
            while (records.count()>0) {
                System.out.printf("While start");
            for (ConsumerRecord<String, String> record : records)
                System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
            records = consumer.poll(100);
            System.out.printf("While end");                
        }
            System.out.printf("End!");
        } catch (Exception e) {
            System.out.printf(e.getMessage() + e.getLocalizedMessage());
        }
    }
}

```

---

<div class="post-metadata">

**Author:** ![OneCricketeer](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.confluent.io/onecricketeer/32/1551_2.png) [@OneCricketeer](https://forum.confluent.io/u/OneCricketeer)\
**Post date:** [27 May 2022 13:41 UTC](https://forum.confluent.io/t/cannot-connect-to-kafka/5019/4 "2022-05-27T13:41:32Z")

</div>

Worth mentioning, you shouldn’t use double equals to compare strings in Java

---

<div class="post-metadata">

**Author:** ![aa07181](https://avatars.discourse-cdn.com/v4/letter/a/b4bc9f/32.png) [@aa07181](https://forum.confluent.io/u/aa07181)\
**Post date:** [10 June 2022 15:46 UTC](https://forum.confluent.io/t/cannot-connect-to-kafka/5019/6 "2022-06-10T15:46:44Z")

</div>

So no ideas from kafka experts?..

---

<div class="post-metadata">

**Author:** ![OneCricketeer](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.confluent.io/onecricketeer/32/1551_2.png) [@OneCricketeer](https://forum.confluent.io/u/OneCricketeer)\
**Post date:** [10 June 2022 17:28 UTC](https://forum.confluent.io/t/cannot-connect-to-kafka/5019/7 "2022-06-10T17:28:42Z")

</div>

I don’t think Kafka is the actual problem.

Write unit tests for your getVariableData method. I think it’s returning empty strings because you’re not comparing strings correctly, so it falls down to `return "" `, causing your authentication to not get the correct username or password, then fail

A better approach would be to use an external properties file and call `Properties.load`
