admin keys from env
This commit is contained in:
parent
cd44d82463
commit
18ef8559de
1
.env
1
.env
@ -5,3 +5,4 @@ DB_NAMESPACE = "brain"
|
||||
DB_NAME = "migration"
|
||||
CERT_PATH = "./tmp/brain-crt.pem"
|
||||
CERT_KEY_PATH = "./tmp/brain-key.pem"
|
||||
# ADMIN_PUB_KEYS = "admin_key01, admin_key02, admin_key03"
|
||||
|
@ -1,3 +1,5 @@
|
||||
use std::sync::LazyLock;
|
||||
|
||||
pub const BRAIN_GRPC_ADDR: &str = "0.0.0.0:31337";
|
||||
pub const CERT_PATH: &str = "/etc/detee/brain/brain-crt.pem";
|
||||
pub const CERT_KEY_PATH: &str = "/etc/detee/brain/brain-key.pem";
|
||||
@ -5,11 +7,18 @@ pub const CONFIG_PATH: &str = "/etc/detee/brain/config.ini";
|
||||
|
||||
pub const DB_SCHEMA_FILE: &str = "interim_tables.surql";
|
||||
|
||||
pub const ADMIN_ACCOUNTS: &[&str] = &[
|
||||
"x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK",
|
||||
"FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL",
|
||||
"H21Shi4iE7vgfjWEQNvzmpmBMJSaiZ17PYUcdNoAoKNc",
|
||||
];
|
||||
pub static ADMIN_ACCOUNTS: LazyLock<Vec<String>> = LazyLock::new(|| {
|
||||
let default_admin_keys = vec![
|
||||
"x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK".to_string(),
|
||||
"FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL".to_string(),
|
||||
"H21Shi4iE7vgfjWEQNvzmpmBMJSaiZ17PYUcdNoAoKNc".to_string(),
|
||||
];
|
||||
|
||||
std::env::var("ADMIN_PUB_KEYS")
|
||||
.ok()
|
||||
.map(|keys| keys.split(',').map(|key| key.trim().to_string()).collect::<Vec<String>>())
|
||||
.unwrap_or(default_admin_keys)
|
||||
});
|
||||
|
||||
pub const OLD_BRAIN_DATA_PATH: &str = "./saved_data.yaml";
|
||||
|
||||
|
@ -166,7 +166,8 @@ pub fn check_admin_key<T>(req: &Request<T>) -> Result<(), Status> {
|
||||
};
|
||||
let pubkey = pubkey
|
||||
.to_str()
|
||||
.map_err(|_| Status::unauthenticated("could not parse pubkey metadata to str"))?;
|
||||
.map_err(|_| Status::unauthenticated("could not parse pubkey metadata to str"))?
|
||||
.to_owned();
|
||||
|
||||
if !ADMIN_ACCOUNTS.contains(&pubkey) {
|
||||
return Err(Status::unauthenticated("This operation is reserved to admin accounts"));
|
||||
|
Loading…
Reference in New Issue
Block a user