aboutsummaryrefslogtreecommitdiff
path: root/src/login
diff options
context:
space:
mode:
authorQuentin Dufour <quentin@deuxfleurs.fr>2023-12-18 17:09:44 +0100
committerQuentin Dufour <quentin@deuxfleurs.fr>2023-12-18 17:09:44 +0100
commit3d41f40dc8cd6bdfa7a9279ab1959564d06eefaf (patch)
treefff5d16e266788b28e812c24669f50118831512b /src/login
parent684f4de225c44464abcb6a9cb2ef6dcae90537a8 (diff)
downloadaerogramme-3d41f40dc8cd6bdfa7a9279ab1959564d06eefaf.tar.gz
aerogramme-3d41f40dc8cd6bdfa7a9279ab1959564d06eefaf.zip
Storage trait new implementation
Diffstat (limited to 'src/login')
-rw-r--r--src/login/ldap_provider.rs14
-rw-r--r--src/login/mod.rs12
-rw-r--r--src/login/static_provider.rs16
3 files changed, 17 insertions, 25 deletions
diff --git a/src/login/ldap_provider.rs b/src/login/ldap_provider.rs
index 4e3af3c..009605d 100644
--- a/src/login/ldap_provider.rs
+++ b/src/login/ldap_provider.rs
@@ -85,11 +85,11 @@ impl LdapLoginProvider {
})
}
- fn storage_creds_from_ldap_user(&self, user: &SearchEntry) -> Result<Builders> {
- let storage: Builders = match &self.storage_specific {
- StorageSpecific::InMemory => Box::new(storage::in_memory::FullMem::new(
+ fn storage_creds_from_ldap_user(&self, user: &SearchEntry) -> Result<Builder> {
+ let storage: Builder = match &self.storage_specific {
+ StorageSpecific::InMemory => storage::in_memory::MemBuilder::new(
&get_attr(user, &self.username_attr)?
- )),
+ ),
StorageSpecific::Garage { from_config, bucket_source } => {
let aws_access_key_id = get_attr(user, &from_config.aws_access_key_id_attr)?;
let aws_secret_access_key = get_attr(user, &from_config.aws_secret_access_key_attr)?;
@@ -99,14 +99,14 @@ impl LdapLoginProvider {
};
- Box::new(storage::garage::GrgCreds {
+ storage::garage::GarageBuilder::new(storage::garage::GarageConf {
region: from_config.aws_region.clone(),
s3_endpoint: from_config.s3_endpoint.clone(),
k2v_endpoint: from_config.k2v_endpoint.clone(),
aws_access_key_id,
aws_secret_access_key,
- bucket
- })
+ bucket,
+ })?
},
};
diff --git a/src/login/mod.rs b/src/login/mod.rs
index 9e0c437..d331522 100644
--- a/src/login/mod.rs
+++ b/src/login/mod.rs
@@ -33,23 +33,15 @@ pub type ArcLoginProvider = Arc<dyn LoginProvider + Send + Sync>;
#[derive(Clone, Debug)]
pub struct Credentials {
/// The storage credentials are used to authenticate access to the underlying storage (S3, K2V)
- pub storage: Builders,
+ pub storage: Builder,
/// The cryptographic keys are used to encrypt and decrypt data stored in S3 and K2V
pub keys: CryptoKeys,
}
-impl Credentials {
- pub fn row_client(&self) -> Result<RowStore> {
- Ok(self.storage.row_store()?)
- }
- pub fn blob_client(&self) -> Result<BlobStore> {
- Ok(self.storage.blob_store()?)
- }
-}
#[derive(Clone, Debug)]
pub struct PublicCredentials {
/// The storage credentials are used to authenticate access to the underlying storage (S3, K2V)
- pub storage: Builders,
+ pub storage: Builder,
pub public_key: PublicKey,
}
diff --git a/src/login/static_provider.rs b/src/login/static_provider.rs
index 788a4c5..5896f16 100644
--- a/src/login/static_provider.rs
+++ b/src/login/static_provider.rs
@@ -88,16 +88,16 @@ impl LoginProvider for StaticLoginProvider {
}
tracing::debug!(user=%username, "fetch keys");
- let storage: storage::Builders = match &user.config.storage {
- StaticStorage::InMemory => Box::new(storage::in_memory::FullMem::new(username)),
- StaticStorage::Garage(grgconf) => Box::new(storage::garage::GrgCreds {
+ let storage: storage::Builder = match &user.config.storage {
+ StaticStorage::InMemory => storage::in_memory::MemBuilder::new(username),
+ StaticStorage::Garage(grgconf) => storage::garage::GarageBuilder::new(storage::garage::GarageConf {
region: grgconf.aws_region.clone(),
k2v_endpoint: grgconf.k2v_endpoint.clone(),
s3_endpoint: grgconf.s3_endpoint.clone(),
aws_access_key_id: grgconf.aws_access_key_id.clone(),
aws_secret_access_key: grgconf.aws_secret_access_key.clone(),
bucket: grgconf.bucket.clone(),
- }),
+ })?,
};
let cr = CryptoRoot(user.config.crypto_root.clone());
@@ -114,16 +114,16 @@ impl LoginProvider for StaticLoginProvider {
Some(u) => u,
};
- let storage: storage::Builders = match &user.config.storage {
- StaticStorage::InMemory => Box::new(storage::in_memory::FullMem::new(&user.username)),
- StaticStorage::Garage(grgconf) => Box::new(storage::garage::GrgCreds {
+ let storage: storage::Builder = match &user.config.storage {
+ StaticStorage::InMemory => storage::in_memory::MemBuilder::new(&user.username),
+ StaticStorage::Garage(grgconf) => storage::garage::GarageBuilder::new(storage::garage::GarageConf {
region: grgconf.aws_region.clone(),
k2v_endpoint: grgconf.k2v_endpoint.clone(),
s3_endpoint: grgconf.s3_endpoint.clone(),
aws_access_key_id: grgconf.aws_access_key_id.clone(),
aws_secret_access_key: grgconf.aws_secret_access_key.clone(),
bucket: grgconf.bucket.clone(),
- }),
+ })?,
};
let cr = CryptoRoot(user.config.crypto_root.clone());