java—是否可以将环境变量引用为kafka的kafkaproducer.properties和kafkaconsumer.properties文件中的属性值

ikfrs5lh  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(343)

我有一个生产者和消费者的java代码,我试图升级它连接到Kafka,这是安全的ssl。我的处境是,ssl相关的密码应该只通过环境变量提供。那么,可以直接引用kafkaproducer.properties和kafkaconsumer.properties文件中环境变量引用的值吗
例如:我在linux系统中声明了一个环境变量ssl\u key\u password=password
在kafkaproducer/consumer属性中,我声明为,“'ssl.key.password=${ssl\u key\u password}”
kafka消费者/生产者属性文件配置示例可能如下所示:,


# For SSL

security.protocol=SSL
ssl.truststore.location=/var/private/ssl/client.truststore.jks
ssl.truststore.password=${TRUSTSTORE_PASS_ENV_VARIABLE}

# For SSL auth

ssl.keystore.location=/var/private/ssl/client.keystore.jks
ssl.keystore.password=${KEYSTORE_PASS_ENV_VARIABLE}
ssl.key.password=${KEY_PASS_ENV_VARIABLE}
oknrviil

oknrviil1#

不要认为属性文件值是插值的,但您可能可以对其进行一次测试。或者,您也可以从属性文件中删除这些行,并从如下代码中执行此操作。。。

final Properties properties = new Properties();
   final FileInputStream input = new FileInputStream(yourExistingFile);

   properties.load(input); 
   properties.put("ssl.key.password",System.getenv("SSL_KEY_PASSWORD"));//this is additional property

相关问题