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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user