如何使用 CassandraAutoConfiguration 在 Spring Boot 应用程序和 cassandra 之间配置 ssl?

Posted

技术标签:

【中文标题】如何使用 CassandraAutoConfiguration 在 Spring Boot 应用程序和 cassandra 之间配置 ssl?【英文标题】:How to configure ssl between spring boot application and cassandra using CassandraAutoConfiguration? 【发布时间】:2017-07-21 21:11:18 【问题描述】:

我正在尝试使用 spring-boot-data-cassandra 从我的 Spring Boot 应用程序连接到 Cassandra。我有两个疑问。

1) 是否建议使用 CassandraAutoConfiguration,即通过在 application.properties 中提供所有 Cassandra 配置,前缀为 (spring.data.cassandra.*),这样我的应用程序将为我创建一个集群,还是我需要手动创建cluster bean,因为在 CassandraAutoConfiguration 中,cluster bean 使用 @ConditionalOnMissingBean注解,所以使用 spring cassandra 自动配置或手动创建 cluster bean 更可取。

2) 我的集群在 Cassandra 端启用了 ssl。因此,当我在启用 ssl 的情况下自动配置 Cassandra 连接时(通过设置 spring.data.cassandra.ssl=true),将为我创建默认 SSL 上下文,但我需要提供我的信任库路径和信任库密码来初始化 SSLContext。 data-cassandra 没有像为 kafka 提供的那样提供属性(spring.kafka.ssl.truststore-location= # 信任存储文件的位置。 spring.kafka.ssl.truststore-password = #存储信任库文件的密码。),所以有没有办法提供信任库文件位置和密码来自动配置我的 Cassandra 配置或覆盖创建的默认 SSLContext。

如果我的理解有误,请帮助我并纠正我。谢谢。

更新:

https://github.com/spring-projects/spring-boot/issues/8476

【问题讨论】:

你是怎么解决这个问题的? 【参考方案1】:

使用 Spring Boot 的 Auto-Configuration 是首选方法,但如果您需要应用更具体的配置,Boot 将不适合您。如果没有提供其他 @Bean,则会创建大多数条件 bean。

如果您自己提供Cluster,那么Spring Boot 的自动配置将不会提供第二个Cluster bean。

自 Spring Boot 1.5 以来,如果您需要更具体的配置,首选方法是提供一个 ClusterBuilderCustomizer bean,该 bean 被调用以根据您的需要自定义 Cluster.Builder

您可能还想在Spring Boot's issue tracker 中提出问题。特定的 SSL 配置是常见的配置用例。

【讨论】:

以上是关于如何使用 CassandraAutoConfiguration 在 Spring Boot 应用程序和 cassandra 之间配置 ssl?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?