我有信任库和密钥库文件以及与cassandra帐户相关的所有信息。我用来连接到cassandra的应用程序有一个限制,因为它没有为我提供指定信任库和密钥库文件的选项,因此我正在查看是否可以使用连接url属性(url properties)通过ssl连接到cassandra感谢你的帮助!!
cgvd09ve1#
instaclustr在他们的网站上有一篇文章,描述了如何通过ssl将spark连接到cassandra:instaclustr spark与ssl配置的cassandra在步骤#6中,他们提供了创建cassandra连接工厂类的详细信息,该类具有 createSSLOptions 允许指定具体细节的方法:
createSSLOptions
SSLOptions createSSLOPtions (CassandraConnectorConf.CassandraSSLConf conf) throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException, KeyManagementException { if (conf.trustStorePath().isEmpty()) { return null; } try (InputStream trustStore = this.getClass().getClassLoader().getResourceAsStream(conf.trustStorePath().get())) { KeyStore keyStore = KeyStore.getInstance(conf.trustStoreType()); keyStore.load(trustStore, conf.trustStorePassword().isDefined() ? conf.trustStorePassword().get().toCharArray() : null); TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(keyStore); SSLContext context = SSLContext.getInstance(conf.protocol()); context.init(null, tmf.getTrustManagers(), new SecureRandom()); ClassTag<String> tag = scala.reflect.ClassTag$.MODULE$.apply(String.class); return JdkSSLOptions.builder() .withSSLContext(context) .withCipherSuites((String[]) conf.enabledAlgorithms().toArray(tag)).build(); } }
然后,他们调用该方法来完成连接生成器对象的收尾工作:
if (conf.cassandraSSLConf().enabled()) { SSLOptions options = createSSLOPtions(conf.cassandraSSLConf()); if (null != options) { builder = builder.withSSL(options); } else { builder = builder.withSSL(); } } return builder;
看看他们的网站,看看你是否可以扩充它来满足你的需要。
1条答案
按热度按时间cgvd09ve1#
instaclustr在他们的网站上有一篇文章,描述了如何通过ssl将spark连接到cassandra:instaclustr spark与ssl配置的cassandra
在步骤#6中,他们提供了创建cassandra连接工厂类的详细信息,该类具有
createSSLOptions
允许指定具体细节的方法:然后,他们调用该方法来完成连接生成器对象的收尾工作:
看看他们的网站,看看你是否可以扩充它来满足你的需要。