diff --git a/crates/directory/src/backend/sql/config.rs b/crates/directory/src/backend/sql/config.rs index a8295fe3..dc69cdbf 100644 --- a/crates/directory/src/backend/sql/config.rs +++ b/crates/directory/src/backend/sql/config.rs @@ -32,9 +32,9 @@ impl SqlDirectory { .unwrap_or_default() .to_string(), column_secret: config - .value((&prefix, "columns.secret")) - .unwrap_or_default() - .to_string(), + .values((&prefix, "columns.secret")) + .map(|(_, v)| v.to_string()) + .collect(), column_quota: config .value((&prefix, "columns.quota")) .unwrap_or_default() diff --git a/crates/directory/src/backend/sql/lookup.rs b/crates/directory/src/backend/sql/lookup.rs index f2e15061..1638af3f 100644 --- a/crates/directory/src/backend/sql/lookup.rs +++ b/crates/directory/src/backend/sql/lookup.rs @@ -209,7 +209,11 @@ impl SqlMappings { if let Some(row) = rows.rows.into_iter().next() { for (name, value) in rows.names.into_iter().zip(row.values) { - if name.eq_ignore_ascii_case(&self.column_secret) { + if self + .column_secret + .iter() + .any(|c| name.eq_ignore_ascii_case(c)) + { if let Value::Text(secret) = value { principal.secrets.push(secret.into_owned()); } diff --git a/crates/directory/src/backend/sql/mod.rs b/crates/directory/src/backend/sql/mod.rs index 1faf3c7e..a4f08678 100644 --- a/crates/directory/src/backend/sql/mod.rs +++ b/crates/directory/src/backend/sql/mod.rs @@ -25,7 +25,7 @@ pub(crate) struct SqlMappings { query_verify: String, query_expand: String, column_description: String, - column_secret: String, + column_secret: Vec, column_quota: String, column_type: String, }