4 个版本
0.1.3 | 2023年5月20日 |
---|---|
0.1.2 | 2023年5月20日 |
0.1.1 | 2023年5月20日 |
0.1.0 | 2023年5月20日 |
#4 in #sig-v4
每月124次下载
15KB
323 行
AWS sigv4 和 cassandra-cpp-sys (DataStax cpp 驱动) 的授权器
它使用 AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
、AWS_SESSION_TOKEN
、AWS_DEFAULT_REGION
、AWS_REGION
环境变量进行配置。
与 cassandra-rs (cassandra-cpp 包) 的示例用法
use tokio;
use std::fs;
use cassandra_cpp::*;
use cassandra_sigv4::*;
#[tokio::main]
async fn main() {
let mut cluster = Cluster::default();
cluster.set_contact_points("cassandra.eu-central-1.amazonaws.com").unwrap();
cluster.set_port(9142).unwrap();
// Add these lines to use SigV4 authentication
let auth = Authenticator::default();
auth.set_authenticator(cluster.0);
let cert = fs::read_to_string("./sf-class2-root.crt")
.expect("Certificate is missing");
let mut ssl = Ssl::default();
ssl.add_trusted_cert(cert.as_str()).unwrap();
ssl.set_verify_flags(&[SslVerifyFlag::NONE]);
cluster.set_ssl(ssl);
let session = cluster.connect().await.unwrap();
let statement = session.statement("SELECT keyspace_name FROM system_schema.keyspaces");
let result = statement.execute().await.unwrap();
for row in result.iter() {
let keyspace_name: String = row.get(0).unwrap();
println!("Keyspace: {}", keyspace_name);
}
}
运行前下载证书
您可以从亚马逊下载证书
curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
Floki
此仓库使用 Floki 创建构建环境。
安装
要安装,请运行以下命令
cargo add cassandra-sigv4
依赖项
~10–13MB
~238K SLoC