用于启用SSL的春季启动Cassandra配置



我正在开发一个使用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

如果您正在使用集群工厂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; }

最新更新