如何在spring应用程序中配置ssl工件?

时间:2018-04-12 22:40:21

标签: spring ssl apache-kafka

我正在寻找有关使用kafka消费者和生产者的春季应用程序(其他人的设计)的帮助。 该设计允许config.properties文件包含如下条目:

kafkaAddress = 10.10.10.12:9093,10.10.10.11:9093,10.10.10.10:9093

这样的配置是由某种 spring bean 代码选取的......

Java代码......

private String kafkaAddress;

public String getKafkaAddress() {
   return kafkaAddress;
}

public void setKafkaAddress(String kafkaAddress) {
   this.kafkaAddress = kafkaAddress;
}

它显示在我用调试器看到的Properties对象中。

“kafkaAddress” - > “10.10.10.12:9093,10.10.10.11:9093,10.10.10.10:9093”

代码将Properties对象传递给Kafka客户端的构造函数

我认为这一切都是通过spring的设计和匹配配置“kafkaAddress”与匹配名称为kafkaAddress的字符串

进行的。

我想为ssl配置诸如......之类的东西。

ssl.truststore.location = C:\一些\路径\ kafka.client.10.10.10.11.truststore.jks ssl.truststore.password = mySecretWord

我把这些东西放在配置中,但是我为我的setter和getter做了什么?

我不能把String ssl.truststore.location,对吧?

1 个答案:

答案 0 :(得分:0)

在config.properties中我用...    ssl_truststore_password = mySecretPassword

在MyConsumerConfig.java文件中的setter和getter中,我使用了...

public void setSsl_truststore_password(String ssl_truststore_password ) {
    this.ssl_truststore_password = ssl_truststore_password;
}
public String getSsl_truststore_password() {
    return this.ssl_truststore_password;
}

在调用构造函数.java文件之前我...

if(StringUtils.isNotEmpty(myConsumerConfig.getSsl_truststore_password())) {
        consumerProps.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG,
                onlineConsumerConfig.getSsl_truststore_password());
    }

SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG在org.apache.kafka.common.config.SslConfigs包中定义...

public static final String  SSL_TRUSTSTORE_PASSWORD_CONFIG  "ssl.truststore.password"

spring框架将配置文件中的“ssl_truststore_password”链接到getter和setter,例如......

MyConsumerConfig.setSsl_truststore_password(String ssl_truststore_password)