使用java.security.Keystore对象的SSL KafkaAdminClient对象

时间:2019-03-22 09:35:58

标签: ssl apache-kafka keystore truststore

我需要使用kafkaAmdinClient对象创建java.security.keystore SSL对象。 也就是说,我必须作为Clob从数据库读取密钥库和truststire文件,并在java.security.keystore对象中获取密钥库,然后使用它来创建Admin客户端对象。

我能够使用properties对象创建AdminClient对象:

props.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, trustStorePwd);
            props.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, "/ngs/app/bolt_components/kafka_ssl/RN_BC_YELLOWBIRD/client.truststore.jks");
            props.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, keyStorePwd);
                            kafkaAdminClient = AdminClient.create(props);

但是根据requiremtn,我不应该指定密钥库文件位置。而是指定密钥库对象。

KeyStoreDto kDto=KeystoreManager.getKafkaKeyStoreDto(kafkaDto.getKEYSTORE_ID());
            java.security.KeyStore keyStore = kDto.getKeyStore();
            java.security.KeyStore trustStore = kDto.getTrustStore();
            String keyStorePwd=kDto.getKeyStorePassword();
            String trustStorePwd=kDto.getTrustStorePassword();

为此,我必须使用keyStoretrustStore

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

Kafka不支持使用ssl对象的java.security.keystore。 您可以在kafkaSslFactory类中了解更多信息。