package com.fzzy.conf; import org.apache.kafka.clients.CommonClientConfigs; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.common.config.SaslConfigs; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.kafka.core.DefaultKafkaProducerFactory; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.core.ProducerFactory; import org.springframework.kafka.transaction.KafkaTransactionManager; import java.util.HashMap; import java.util.Map; //@Configuration //@EnableKafka //@SpringBootConfiguration public class KafkaConfig2 { // private String defaultSaslJaasConfig="org.apache.kafka.common.security.scram.ScramLoginModule required username=\"{username}\" password=\"{password}\";"; @Value("${spring.kafka.bootstrap-servers}") private String bootstrapServers; @Value("${spring.kafka.properties.security.protocol}") private String securityProtocol; @Value("${spring.kafka.properties.sasl.mechanism}") private String saslMechanism; @Value("${spring.kafka.properties.sasl.jaas.config}") private String saslJaasConfig; @Value("${spring.kafka.properties.sasl.username}") private String saslUsername; @Value("${spring.kafka.properties.sasl.password}") private String saslPassword; @Bean public Map producerConfigs() { Map props = new HashMap<>(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, securityProtocol); props.put(SaslConfigs.SASL_MECHANISM, saslMechanism); props.put("sasl.username", saslUsername); props.put("sasl.password", saslPassword); // props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username='sc001' password='wCV0ISwmoKwbx1lpBKMW';"); props.put("sasl.jaas.config", saslJaasConfig); return props; } // @Bean // public Map consumerConfigs() { // Map props = new HashMap<>(); // props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); // //// props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); //// props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); // // // props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, securityProtocol); // props.put(SaslConfigs.SASL_MECHANISM, saslMechanism); // props.put("sasl.username", saslUsername); // props.put("sasl.password", saslPassword); // // // // props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username='sc001' password='wCV0ISwmoKwbx1lpBKMW';"); // // // props.put("sasl.jaas.config", saslJaasConfig); // // return props; // } // @Bean // public ProducerFactory producerFactory() { // DefaultKafkaProducerFactory factory = new DefaultKafkaProducerFactory<>(producerConfigs()); // return factory; // } // // // @Bean // public KafkaTransactionManager kafkaTransactionManager(ProducerFactory producerFactory) { // return new KafkaTransactionManager<>(producerFactory); // } // // @Bean // public KafkaTemplate kafkaTemplate() { // return new KafkaTemplate<>(producerFactory()); // } }