Repository: quarkusio/quarkus
Issue: Kafka Schema Registry with basic authentication not working in native mode

**Describe the bug**
When accessing schema registry in **native mode**, the basic authentication is not working and I am getting 401 unauthorized. It works good in the JVM mode

In Native mode below properties are not honored.
```properties 
kafka.basic.auth.credentials.source=USER_INFO
kafka.basic.auth.user.info=user:pass
```

stacktrace
```java
2021-03-03 18:43:05,304 ERROR [io.sma.rea.mes.kafka] (vert.x-eventloop-thread-1) SRMSG18206: Unable to write to Kafka from channel movies (topic: movies): org.apache.kafka.common.errors.InvalidConfigurationException: Unauthorized; error code: 401
```

**Expected behavior**
Schema registry with basic authentication works in native mode similar to JVM mode






**Configuration**
```properties

kafka.bootstrap.servers=somehost.us-east4.gcp.confluent.cloud:9092
kafka.security.protocol=SASL_SSL
kafka.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule  \\
required username='secretuser'  \\
password='pass';
kafka.sasl.mechanism=PLAIN
kafka.acks=all
kafka.schema.registry.url=https://someurl.confluent.cloud
kafka.basic.auth.credentials.source=USER_INFO
kafka.basic.auth.user.info=user:pass


mp.messaging.outgoing.movies.connector=smallrye-kafka
mp.messaging.outgoing.movies.topic=movies
mp.messaging.outgoing.movies.value.serializer=io.confluent.kafka.serializers.KafkaAvroSerializer
mp.messaging.outgoing.movies.schema.registry.url=${kafka.schema.registry.url}
mp.messaging.outgoing.movies.specific.avro.reader=true



mp.messaging.incoming.movies-from-kafka.connector=smallrye-kafka
mp.messaging.incoming.movies-from-kafka.topic=movies
mp.messaging.incoming.movies-from-kafka.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer
mp.messaging.incoming.movies-from-kafka.auto.offset.reset=earliest
mp.messaging.incoming.movies-from-kafka.enable.auto.commit=false
mp.messaging.incoming.movies-from-kafka.group.id=movies
mp.messaging.incoming.movies-from-kafka.schema.registry.url=${kafka.schema.registry.url}
mp.messaging.incoming.movies-from-kafka.specific.avro.reader=true
```

**Screenshots**
(If applicable, add screenshots to help explain your problem.)

**Environment (please complete the following information):**
 - Output of `uname -a` or `ver`: Linux x64
 - Output of `java -version`: Java 11
 - GraalVM version (if different from Java): 
 - Quarkus version or git rev: 1.12.0.Final
 - Build tool (ie. output of `mvnw --version` or `gradlew --version`): mvnw

**Additional context**
(Add any other context about the problem here.)


Changed files:
extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java

diff --git a/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java b/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
index 52886b8f806..93a0b67886b 100644
--- a/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
+++ b/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
@@ -62,6 +62,7 @@
 import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
 import io.quarkus.deployment.pkg.NativeConfig;
 import io.quarkus.kafka.client.runtime.KafkaRecorder;
 import io.quarkus.kafka.client.runtime.KafkaRuntimeConfigProducer;
@@ -117,6 +118,7 @@ void contributeClassesToIndex(BuildProducer<AdditionalIndexedClassesBuildItem> a
     public void build(
             KafkaBuildTimeConfig config,
             CombinedIndexBuildItem indexBuildItem, BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
+            BuildProducer<ServiceProviderBuildItem> serviceProviders,
             BuildProducer<NativeImageProxyDefinitionBuildItem> proxies,
             Capabilities capabilities, BuildProducer<UnremovableBeanBuildItem> beans,
             BuildProducer<NativeImageResourceBuildItem> nativeLibs, NativeConfig nativeConfig) {
@@ -172,7 +174,7 @@ public void build(
         reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, "java.nio.DirectByteBuffer"));
         reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, "sun.misc.Cleaner"));
 
-        handleAvro(reflectiveClass, proxies);
+        handleAvro(reflectiveClass, proxies, serviceProviders);
         handleOpenTracing(reflectiveClass, capabilities);
         handleStrimziOAuth(reflectiveClass);
         if (config.snappyEnabled) {
@@ -253,7 +255,8 @@ private void handleStrimziOAuth(BuildProducer<ReflectiveClassBuildItem> reflecti
     }
 
     private void handleAvro(BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
-            BuildProducer<NativeImageProxyDefinitionBuildItem> proxies) {
+            BuildProducer<NativeImageProxyDefinitionBuildItem> proxies,
+            BuildProducer<ServiceProviderBuildItem> serviceProviders) {
         // Avro - for both Confluent and Apicurio
         try {
             Class.forName("io.confluent.kafka.serializers.KafkaAvroDeserializer", false,
@@ -292,6 +295,18 @@ private void handleAvro(BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
             //ignore, Confluent Avro is not in the classpath
         }
 
+        try {
+            Class.forName("io.confluent.kafka.schemaregistry.client.security.basicauth.BasicAuthCredentialProvider", false,
+                    Thread.currentThread().getContextClassLoader());
+            serviceProviders
+                    .produce(new ServiceProviderBuildItem(
+                            "io.confluent.kafka.schemaregistry.client.security.basicauth.BasicAuthCredentialProvider",
+                            "io.confluent.kafka.schemaregistry.client.security.basicauth.SaslBasicAuthCredentialProvider",
+                            "io.confluent.kafka.schemaregistry.client.security.basicauth.UrlBasicAuthCredentialProvider",
+                            "io.confluent.kafka.schemaregistry.client.security.basicauth.UserInfoCredentialProvider"));
+        } catch (ClassNotFoundException e) {
+            // ignore, Confluent schema registry client not in the classpath
+        }
         try {
             Class.forName("io.apicurio.registry.utils.serde.AvroKafkaDeserializer", false,
                     Thread.currentThread().getContextClassLoader());