now compile again
This commit is contained in:
parent
3ddbce4529
commit
cf18eb8afb
3 changed files with 4 additions and 26 deletions
|
@ -79,8 +79,6 @@ pub struct LoginLdapConfig {
|
||||||
pub username_attr: String,
|
pub username_attr: String,
|
||||||
#[serde(default = "default_mail_attr")]
|
#[serde(default = "default_mail_attr")]
|
||||||
pub mail_attr: String,
|
pub mail_attr: String,
|
||||||
pub user_secret_attr: String,
|
|
||||||
pub alternate_user_secrets_attr: Option<String>,
|
|
||||||
|
|
||||||
// Storage related thing
|
// Storage related thing
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
|
@ -140,7 +138,7 @@ pub enum AnyConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---
|
// ---
|
||||||
pub fn read_config<'a, T: Deserialize<'a>>(config_file: PathBuf) -> Result<T> {
|
pub fn read_config<T: serde::de::DeserializeOwned>(config_file: PathBuf) -> Result<T> {
|
||||||
let mut file = std::fs::OpenOptions::new()
|
let mut file = std::fs::OpenOptions::new()
|
||||||
.read(true)
|
.read(true)
|
||||||
.open(config_file.as_path())?;
|
.open(config_file.as_path())?;
|
||||||
|
|
|
@ -19,8 +19,6 @@ pub struct LdapLoginProvider {
|
||||||
mail_attr: String,
|
mail_attr: String,
|
||||||
|
|
||||||
storage_specific: StorageSpecific,
|
storage_specific: StorageSpecific,
|
||||||
user_secret_attr: String,
|
|
||||||
alternate_user_secrets_attr: Option<String>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum BucketSource {
|
enum BucketSource {
|
||||||
|
@ -50,13 +48,8 @@ impl LdapLoginProvider {
|
||||||
let mut attrs_to_retrieve = vec![
|
let mut attrs_to_retrieve = vec![
|
||||||
config.username_attr.clone(),
|
config.username_attr.clone(),
|
||||||
config.mail_attr.clone(),
|
config.mail_attr.clone(),
|
||||||
config.user_secret_attr.clone(),
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if let Some(a) = &config.alternate_user_secrets_attr {
|
|
||||||
attrs_to_retrieve.push(a.clone());
|
|
||||||
}
|
|
||||||
|
|
||||||
// storage specific
|
// storage specific
|
||||||
let specific = match config.storage {
|
let specific = match config.storage {
|
||||||
LdapStorage::InMemory => StorageSpecific::InMemory,
|
LdapStorage::InMemory => StorageSpecific::InMemory,
|
||||||
|
@ -86,8 +79,6 @@ impl LdapLoginProvider {
|
||||||
username_attr: config.username_attr,
|
username_attr: config.username_attr,
|
||||||
mail_attr: config.mail_attr,
|
mail_attr: config.mail_attr,
|
||||||
storage_specific: specific,
|
storage_specific: specific,
|
||||||
user_secret_attr: config.user_secret_attr,
|
|
||||||
alternate_user_secrets_attr: config.alternate_user_secrets_attr,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,20 +156,9 @@ impl LoginProvider for LdapLoginProvider {
|
||||||
debug!("Ldap login with user name {} successfull", username);
|
debug!("Ldap login with user name {} successfull", username);
|
||||||
|
|
||||||
let storage = self.storage_creds_from_ldap_user(&user)?;
|
let storage = self.storage_creds_from_ldap_user(&user)?;
|
||||||
|
|
||||||
let user_secret = get_attr(&user, &self.user_secret_attr)?;
|
|
||||||
let alternate_user_secrets = match &self.alternate_user_secrets_attr {
|
|
||||||
None => vec![],
|
|
||||||
Some(a) => user.attrs.get(a).cloned().unwrap_or_default(),
|
|
||||||
};
|
|
||||||
let user_secrets = UserSecrets {
|
|
||||||
user_secret,
|
|
||||||
alternate_user_secrets,
|
|
||||||
};
|
|
||||||
|
|
||||||
drop(ldap);
|
drop(ldap);
|
||||||
|
|
||||||
let keys = CryptoKeys::open(&storage, &user_secrets, password).await?;
|
let keys = CryptoKeys::open(&storage, password).await?;
|
||||||
|
|
||||||
Ok(Credentials { storage, keys })
|
Ok(Credentials { storage, keys })
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ impl StaticLoginProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_user_list(&mut self) -> Result<()> {
|
pub fn update_user_list(&mut self) -> Result<()> {
|
||||||
let ulist: UserList = read_config(self.user_list)?;
|
let ulist: UserList = read_config(self.user_list.clone())?;
|
||||||
|
|
||||||
let users = ulist
|
let users = ulist
|
||||||
.into_iter()
|
.into_iter()
|
||||||
|
@ -76,7 +76,7 @@ impl LoginProvider for StaticLoginProvider {
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
let keys = match user.crypto_root { /*(&user.master_key, &user.secret_key) {*/
|
let keys = match &user.crypto_root { /*(&user.master_key, &user.secret_key) {*/
|
||||||
CryptographyRoot::InPlace { master_key: m, secret_key: s } => {
|
CryptographyRoot::InPlace { master_key: m, secret_key: s } => {
|
||||||
let master_key =
|
let master_key =
|
||||||
Key::from_slice(&base64::decode(m)?).ok_or(anyhow!("Invalid master key"))?;
|
Key::from_slice(&base64::decode(m)?).ok_or(anyhow!("Invalid master key"))?;
|
||||||
|
|
Loading…
Reference in a new issue