KafkaJaasLoginModuleInitializer init changes

- Insted of unconditionally initializing KafkaJaasLoginModuleInitializer,
   only create it, if jaas properties are set properly. By creating it always,
   we unncessarily expose Java security related class requirements to the binder
   apps. For e.g. if the underlying JVM security classes change and require
   reflection, that could break AOT apps that don't use a secure Kafka cluster.
   Fixing these type of issues by creating KafkaJaasLoginModuleInitializer only if required.
This commit is contained in:
Soby Chacko
2023-08-10 12:13:40 -04:00
parent 6c28820e8e
commit 3b4e1795c3

View File

@@ -169,20 +169,23 @@ public class KafkaBinderConfiguration {
public KafkaJaasLoginModuleInitializer jaasInitializer(
KafkaBinderConfigurationProperties configurationProperties)
throws IOException {
KafkaJaasLoginModuleInitializer kafkaJaasLoginModuleInitializer = new KafkaJaasLoginModuleInitializer();
JaasLoginModuleConfiguration jaas = configurationProperties.getJaas();
if (jaas != null) {
if (jaas == null) {
return null;
}
else {
KafkaJaasLoginModuleInitializer kafkaJaasLoginModuleInitializer = new KafkaJaasLoginModuleInitializer();
kafkaJaasLoginModuleInitializer.setLoginModule(jaas.getLoginModule());
KafkaJaasLoginModuleInitializer.ControlFlag controlFlag = jaas
.getControlFlag();
.getControlFlag();
if (controlFlag != null) {
kafkaJaasLoginModuleInitializer.setControlFlag(controlFlag);
}
kafkaJaasLoginModuleInitializer.setOptions(jaas.getOptions());
return kafkaJaasLoginModuleInitializer;
}
return kafkaJaasLoginModuleInitializer;
}
@Configuration(proxyBeanMethods = false)