Skip to content

Commit 99f0df3

Browse files
author
Jerome Revillard
committed
Specific authentication variables are not needed
Schema registry client already have everything for that: basic.auth.credentials.source=USER_INFO basic.auth.user.info=fred:letmein For kafka-gitops, you can provide everything using env variable and prefix them by SCHEMA_REGISTRY_. Example: SCHEMA_REGISTRY_SCHEMA_REGISTRY_SSL_TRUSTSTORE_LOCATION=/ca.jks SCHEMA_REGISTRY_SCHEMA_REGISTRY_SSL_TRUSTSTORE_PASSWORD=changeme SCHEMA_REGISTRY_BASIC_AUTH_CREDENTIALS_SOURCE=USER_INFO SCHEMA_REGISTRY_BASIC_AUTH_USER_INFO=fred:letmein
1 parent fb27175 commit 99f0df3

File tree

2 files changed

+2
-44
lines changed

2 files changed

+2
-44
lines changed

src/main/java/com/devshawn/kafka/gitops/config/SchemaRegistryConfigLoader.java

+2-33
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ public class SchemaRegistryConfigLoader {
1212

1313
public static final String SCHEMA_REGISTRY_URL_KEY = "SCHEMA_REGISTRY_URL";
1414
public static final String SCHEMA_DIRECTORY_KEY = "SCHEMA_DIRECTORY";
15-
public static final String SCHEMA_REGISTRY_SASL_JAAS_USERNAME_KEY = "SCHEMA_REGISTRY_SASL_JAAS_USERNAME";
16-
public static final String SCHEMA_REGISTRY_SASL_JAAS_PASSWORD_KEY = "SCHEMA_REGISTRY_SASL_JAAS_PASSWORD";
17-
public static final String SCHEMA_REGISTRY_SASL_CONFIG_KEY = "SCHEMA_REGISTRY_SASL_CONFIG";
1815

1916
private SchemaRegistryConfigLoader() {}
2017

@@ -26,17 +23,11 @@ public static SchemaRegistryConfig load() {
2623

2724
private static void setConfig(SchemaRegistryConfig.Builder builder) {
2825
Map<String, Object> config = new HashMap<>();
29-
AtomicReference<String> username = new AtomicReference<>();
30-
AtomicReference<String> password = new AtomicReference<>();
3126

3227
Map<String, String> environment = System.getenv();
3328

3429
environment.forEach((key, value) -> {
35-
if (key.equals(SCHEMA_REGISTRY_SASL_JAAS_USERNAME_KEY)) {
36-
username.set(value);
37-
} else if (key.equals(SCHEMA_REGISTRY_SASL_JAAS_PASSWORD_KEY)) {
38-
password.set(value);
39-
} else if (key.equals(SCHEMA_REGISTRY_URL_KEY)) {
30+
if (key.equals(SCHEMA_REGISTRY_URL_KEY)) {
4031
config.put(SCHEMA_REGISTRY_URL_KEY, value);
4132
} else if (key.equals(SCHEMA_DIRECTORY_KEY)) {
4233
config.put(SCHEMA_DIRECTORY_KEY, value);
@@ -47,7 +38,6 @@ private static void setConfig(SchemaRegistryConfig.Builder builder) {
4738
});
4839

4940
handleDefaultConfig(config);
50-
handleAuthentication(username, password, config);
5141

5242
log.info("Schema Registry Config: {}", config);
5343

@@ -62,29 +52,8 @@ private static void handleDefaultConfig(Map<String, Object> config) {
6252
config.put(SCHEMA_REGISTRY_URL_KEY, DEFAULT_URL);
6353
}
6454
if (!config.containsKey(SCHEMA_DIRECTORY_KEY)) {
65-
log.info("{} not set. Defaulting to current working directory: {}", SCHEMA_DIRECTORY_KEY, CURRENT_WORKING_DIR);
55+
log.info("{} not set. Defaulting to current working directory: {}", SCHEMA_DIRECTORY_KEY, CURRENT_WORKING_DIR);
6656
config.put(SCHEMA_DIRECTORY_KEY, CURRENT_WORKING_DIR);
6757
}
6858
}
69-
70-
private static void handleAuthentication(AtomicReference<String> username, AtomicReference<String> password, Map<String, Object> config) {
71-
if (username.get() != null && password.get() != null) {
72-
String loginModule = "org.apache.kafka.common.security.plain.PlainLoginModule";
73-
String value = String.format("%s required username=\"%s\" password=\"%s\";",
74-
loginModule, escape(username.get()), escape(password.get()));
75-
config.put(SCHEMA_REGISTRY_SASL_CONFIG_KEY, value);
76-
} else {
77-
if(config.get(SCHEMA_REGISTRY_SASL_CONFIG_KEY) == null) {
78-
log.info("{} or {} not set. No authentication configured for the Schema Registry",
79-
SCHEMA_REGISTRY_SASL_JAAS_USERNAME_KEY, SCHEMA_REGISTRY_SASL_JAAS_PASSWORD_KEY);
80-
}
81-
}
82-
}
83-
84-
private static String escape(String value) {
85-
if (value != null) {
86-
return value.replace("\"", "\\\"");
87-
}
88-
return null;
89-
}
9059
}

src/main/java/com/devshawn/kafka/gitops/service/SchemaRegistryService.java

-11
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@
33
import java.io.IOException;
44
import java.util.ArrayList;
55
import java.util.Collections;
6-
import java.util.HashMap;
76
import java.util.List;
87
import java.util.Map;
98
import java.util.Optional;
10-
import org.apache.kafka.common.config.SaslConfigs;
119
import com.devshawn.kafka.gitops.config.SchemaRegistryConfig;
1210
import com.devshawn.kafka.gitops.config.SchemaRegistryConfigLoader;
1311
import com.devshawn.kafka.gitops.domain.plan.SchemaPlan;
@@ -25,7 +23,6 @@
2523
import io.confluent.kafka.schemaregistry.client.rest.RestService;
2624
import io.confluent.kafka.schemaregistry.client.rest.entities.SchemaReference;
2725
import io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException;
28-
import io.confluent.kafka.schemaregistry.client.security.basicauth.SaslBasicAuthCredentialProvider;
2926
import io.confluent.kafka.schemaregistry.json.JsonSchemaProvider;
3027
import io.confluent.kafka.schemaregistry.protobuf.ProtobufSchemaProvider;
3128

@@ -182,14 +179,6 @@ public boolean deepEquals(SchemaDetails schemaDetails, SchemaMetadata schemaMeta
182179

183180
public CachedSchemaRegistryClient createSchemaRegistryClient() {
184181
RestService restService = new RestService(config.getConfig().get(SchemaRegistryConfigLoader.SCHEMA_REGISTRY_URL_KEY).toString());
185-
if(config.getConfig().get(SchemaRegistryConfigLoader.SCHEMA_REGISTRY_SASL_CONFIG_KEY) != null) {
186-
SaslBasicAuthCredentialProvider saslBasicAuthCredentialProvider = new SaslBasicAuthCredentialProvider();
187-
Map<String, Object> clientConfig = new HashMap<>();
188-
clientConfig.put(SaslConfigs.SASL_JAAS_CONFIG, config.getConfig()
189-
.get(SchemaRegistryConfigLoader.SCHEMA_REGISTRY_SASL_CONFIG_KEY).toString());
190-
saslBasicAuthCredentialProvider.configure(clientConfig);
191-
restService.setBasicAuthCredentialProvider(saslBasicAuthCredentialProvider);
192-
}
193182
return new CachedSchemaRegistryClient(restService, 10, config.getConfig());
194183
}
195184

0 commit comments

Comments
 (0)