Springboot Cassandra - 带 SSL 的 CqlSessionFactoryBean
Springboot Cassandra - CqlSessionFactoryBean with SSL
关于如何连接到启用了 SSL 的 Cassandra 集群的小问题。
目前,我正在连接到 Cassandra 集群,该集群 未通过执行以下操作启用 SSL,并且运行良好。
@Configuration
public class BaseCassandraConfiguration extends AbstractReactiveCassandraConfiguration {
@Value("${spring.data.cassandra.username}")
private String username;
@Value("${spring.data.cassandra.password}")
private String passPhrase;
@Value("${spring.data.cassandra.keyspace-name}")
private String keyspace;
@Value("${spring.data.cassandra.local-datacenter}")
private String datacenter;
@Value("${spring.data.cassandra.contact-points}")
private String contactPoints;
@Value("${spring.data.cassandra.port}")
private int port;
@Bean
@NonNull
@Override
public CqlSessionFactoryBean cassandraSession() {
final CqlSessionFactoryBean cqlSessionFactoryBean = new CqlSessionFactoryBean();
cqlSessionFactoryBean.setContactPoints(contactPoints);
cqlSessionFactoryBean.setKeyspaceName(keyspace);
cqlSessionFactoryBean.setLocalDatacenter(datacenter);
cqlSessionFactoryBean.setPort(port);
cqlSessionFactoryBean.setUsername(username);
cqlSessionFactoryBean.setPassword(passPhrase);
return cqlSessionFactoryBean;
}
我有另一个启用了 SSL 的 Cassandra 集群。
我期待看到 cqlSessionFactoryBean.setSSLEnabled(true)
之类的东西。不幸的是,似乎没有这样的。
请问设置此 bean 以便使用 SSL 连接到 Cassandra 的正确方法是什么?
谢谢。
CqlSessionFactoryBean
没有用于 SSL 连接的方法,因此您可能必须更改它并改用 CqlSession
。
SSLContext sslContext = ...
CqlSession session = CqlSession.builder()
.withSslContext(sslContext)
.build();
或
SslEngineFactory yourFactory = ...
CqlSession session = CqlSession.builder()
.withSslEngineFactory(yourFactory)
.build();
关于如何连接到启用了 SSL 的 Cassandra 集群的小问题。
目前,我正在连接到 Cassandra 集群,该集群 未通过执行以下操作启用 SSL,并且运行良好。
@Configuration
public class BaseCassandraConfiguration extends AbstractReactiveCassandraConfiguration {
@Value("${spring.data.cassandra.username}")
private String username;
@Value("${spring.data.cassandra.password}")
private String passPhrase;
@Value("${spring.data.cassandra.keyspace-name}")
private String keyspace;
@Value("${spring.data.cassandra.local-datacenter}")
private String datacenter;
@Value("${spring.data.cassandra.contact-points}")
private String contactPoints;
@Value("${spring.data.cassandra.port}")
private int port;
@Bean
@NonNull
@Override
public CqlSessionFactoryBean cassandraSession() {
final CqlSessionFactoryBean cqlSessionFactoryBean = new CqlSessionFactoryBean();
cqlSessionFactoryBean.setContactPoints(contactPoints);
cqlSessionFactoryBean.setKeyspaceName(keyspace);
cqlSessionFactoryBean.setLocalDatacenter(datacenter);
cqlSessionFactoryBean.setPort(port);
cqlSessionFactoryBean.setUsername(username);
cqlSessionFactoryBean.setPassword(passPhrase);
return cqlSessionFactoryBean;
}
我有另一个启用了 SSL 的 Cassandra 集群。
我期待看到 cqlSessionFactoryBean.setSSLEnabled(true)
之类的东西。不幸的是,似乎没有这样的。
请问设置此 bean 以便使用 SSL 连接到 Cassandra 的正确方法是什么?
谢谢。
CqlSessionFactoryBean
没有用于 SSL 连接的方法,因此您可能必须更改它并改用 CqlSession
。
SSLContext sslContext = ...
CqlSession session = CqlSession.builder()
.withSslContext(sslContext)
.build();
或
SslEngineFactory yourFactory = ...
CqlSession session = CqlSession.builder()
.withSslEngineFactory(yourFactory)
.build();