|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2012-2016 the original author or authors. |
|
|
|
* Copyright 2012-2017 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -20,6 +20,8 @@ import java.io.File; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.security.auth.login.AppConfigurationEntry; |
|
|
|
|
|
|
|
|
|
|
|
import org.apache.kafka.clients.consumer.ConsumerConfig; |
|
|
|
import org.apache.kafka.clients.consumer.ConsumerConfig; |
|
|
|
import org.apache.kafka.clients.producer.ProducerConfig; |
|
|
|
import org.apache.kafka.clients.producer.ProducerConfig; |
|
|
|
import org.apache.kafka.common.config.SslConfigs; |
|
|
|
import org.apache.kafka.common.config.SslConfigs; |
|
|
|
@ -38,8 +40,10 @@ import org.springframework.kafka.core.DefaultKafkaConsumerFactory; |
|
|
|
import org.springframework.kafka.core.DefaultKafkaProducerFactory; |
|
|
|
import org.springframework.kafka.core.DefaultKafkaProducerFactory; |
|
|
|
import org.springframework.kafka.core.KafkaTemplate; |
|
|
|
import org.springframework.kafka.core.KafkaTemplate; |
|
|
|
import org.springframework.kafka.listener.AbstractMessageListenerContainer.AckMode; |
|
|
|
import org.springframework.kafka.listener.AbstractMessageListenerContainer.AckMode; |
|
|
|
|
|
|
|
import org.springframework.kafka.security.jaas.KafkaJaasLoginModuleInitializer; |
|
|
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.entry; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Tests for {@link KafkaAutoConfiguration}. |
|
|
|
* Tests for {@link KafkaAutoConfiguration}. |
|
|
|
@ -160,6 +164,8 @@ public class KafkaAutoConfigurationTests { |
|
|
|
assertThat(configs.get(ProducerConfig.RETRIES_CONFIG)).isEqualTo(2); |
|
|
|
assertThat(configs.get(ProducerConfig.RETRIES_CONFIG)).isEqualTo(2); |
|
|
|
assertThat(configs.get(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG)) |
|
|
|
assertThat(configs.get(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG)) |
|
|
|
.isEqualTo(IntegerSerializer.class); |
|
|
|
.isEqualTo(IntegerSerializer.class); |
|
|
|
|
|
|
|
assertThat(this.context.getBeansOfType(KafkaJaasLoginModuleInitializer.class)) |
|
|
|
|
|
|
|
.isEmpty(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
@ -169,7 +175,11 @@ public class KafkaAutoConfigurationTests { |
|
|
|
"spring.kafka.listener.ack-count=123", |
|
|
|
"spring.kafka.listener.ack-count=123", |
|
|
|
"spring.kafka.listener.ack-time=456", |
|
|
|
"spring.kafka.listener.ack-time=456", |
|
|
|
"spring.kafka.listener.concurrency=3", |
|
|
|
"spring.kafka.listener.concurrency=3", |
|
|
|
"spring.kafka.listener.poll-timeout=2000"); |
|
|
|
"spring.kafka.listener.poll-timeout=2000", |
|
|
|
|
|
|
|
"spring.kafka.jaas.enabled=true", |
|
|
|
|
|
|
|
"spring.kafka.jaas.login-module=foo", |
|
|
|
|
|
|
|
"spring.kafka.jaas.control-flag=REQUISITE", |
|
|
|
|
|
|
|
"spring.kafka.jaas.options.useKeyTab=true"); |
|
|
|
DefaultKafkaProducerFactory<?, ?> producerFactory = this.context |
|
|
|
DefaultKafkaProducerFactory<?, ?> producerFactory = this.context |
|
|
|
.getBean(DefaultKafkaProducerFactory.class); |
|
|
|
.getBean(DefaultKafkaProducerFactory.class); |
|
|
|
DefaultKafkaConsumerFactory<?, ?> consumerFactory = this.context |
|
|
|
DefaultKafkaConsumerFactory<?, ?> consumerFactory = this.context |
|
|
|
@ -189,6 +199,16 @@ public class KafkaAutoConfigurationTests { |
|
|
|
assertThat(dfa.getPropertyValue("concurrency")).isEqualTo(3); |
|
|
|
assertThat(dfa.getPropertyValue("concurrency")).isEqualTo(3); |
|
|
|
assertThat(dfa.getPropertyValue("containerProperties.pollTimeout")) |
|
|
|
assertThat(dfa.getPropertyValue("containerProperties.pollTimeout")) |
|
|
|
.isEqualTo(2000L); |
|
|
|
.isEqualTo(2000L); |
|
|
|
|
|
|
|
assertThat(this.context.getBeansOfType(KafkaJaasLoginModuleInitializer.class)) |
|
|
|
|
|
|
|
.hasSize(1); |
|
|
|
|
|
|
|
KafkaJaasLoginModuleInitializer jaas = this.context.getBean( |
|
|
|
|
|
|
|
KafkaJaasLoginModuleInitializer.class); |
|
|
|
|
|
|
|
dfa = new DirectFieldAccessor(jaas); |
|
|
|
|
|
|
|
assertThat(dfa.getPropertyValue("loginModule")).isEqualTo("foo"); |
|
|
|
|
|
|
|
assertThat(dfa.getPropertyValue("controlFlag")) |
|
|
|
|
|
|
|
.isEqualTo(AppConfigurationEntry.LoginModuleControlFlag.REQUISITE); |
|
|
|
|
|
|
|
assertThat(((Map<String, String>) dfa.getPropertyValue("options"))) |
|
|
|
|
|
|
|
.containsExactly(entry("useKeyTab", "true")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void load(String... environment) { |
|
|
|
private void load(String... environment) { |
|
|
|
|