【问题标题】:Spring boot Cassandra configuration for enabling SSL用于启用 SSL 的 Spring Boot Cassandra 配置
【发布时间】:2021-04-07 21:05:45
【问题描述】:

我正在开发一个使用 Cassandra 的 Spring Boot 应用程序。我想在我的应用程序中启用 SSL,但似乎找不到如何配置 Cassandra 以使用 SSL。

@Configuration
 class CassandraApplicationConfiguration extends AbstractCassandraConfiguration {

        @Value("${spring.data.cassandra.contact-points:localhost}")
        private String contactPoints;

        @Value("${spring.data.cassandra.keyspace-name:my_keyspace}")
        private String keySpace;

        @Value("${spring.data.cassandra.port:9042}")
        private int port;

        @Value("${spring.data.cassandra.username:cassandra}")
        private String username;

        @Value("${spring.data.cassandra.password:cassandra}")
        private String password;

        @Value("${spring.data.cassandra.schema-action:NONE}")
        private String schemaAction;

       @Override
       protected AuthProvider getAuthProvider() {
           return new PlainTextAuthProvider(username, password);
       }
}

另外我使用的是默认驱动,附带以下依赖项。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-cassandra</artifactId>
    <version>2.2.0.RELEASE</version>
</dependency>

只需以下标志即可传递信任库和密码

-Djavax.net.ssl.trustStore=~/keys/internal-truststore
-Djavax.net.ssl.trustStorePassword=password

【问题讨论】:

    标签: spring-boot ssl cassandra spring-data-cassandra spring-boot-configuration


    【解决方案1】:

    如果您使用的是集群工厂 bean

    @Bean 
    @Override public CassandraClusterFactoryBean cluster() {
        CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean(); 
        PlainTextAuthProvider sap = new PlainTextAuthProvider(env.getProperty("cassandra.username"), env.getProperty("cassandra.password"));
        cluster.setContactPoints(env.getProperty("cassandra.contactpoints"));
        cluster.setPort(Integer.parseInt(env.getProperty("cassandra.port")));
        cluster.setAuthProvider(sap);
        cluster.setSslEnabled(true);
        return cluster; }
    

    【讨论】:

    • 引起:com.datastax.driver.core.exceptions.NoHostAvailableException:所有主机尝试查询失败(尝试:xxx.xx.x.xxx/xxx.xx.x.xxx :9042 (com.datastax.driver.core.exceptions.TransportException: [ xxx.xx.x.xxx/xxx.xx.x.xxx::9042] Error writing)) --- 我一直收到这个错误
    猜你喜欢
    • 2018-09-07
    • 2016-02-06
    • 2017-07-21
    • 2020-08-03
    • 2020-03-10
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多