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"
|
DB_NAME = "migration"
|
||||||
CERT_PATH = "./tmp/brain-crt.pem"
|
CERT_PATH = "./tmp/brain-crt.pem"
|
||||||
CERT_KEY_PATH = "./tmp/brain-key.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 BRAIN_GRPC_ADDR: &str = "0.0.0.0:31337";
|
||||||
pub const CERT_PATH: &str = "/etc/detee/brain/brain-crt.pem";
|
pub const CERT_PATH: &str = "/etc/detee/brain/brain-crt.pem";
|
||||||
pub const CERT_KEY_PATH: &str = "/etc/detee/brain/brain-key.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 DB_SCHEMA_FILE: &str = "interim_tables.surql";
|
||||||
|
|
||||||
pub const ADMIN_ACCOUNTS: &[&str] = &[
|
pub static ADMIN_ACCOUNTS: LazyLock<Vec<String>> = LazyLock::new(|| {
|
||||||
"x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK",
|
let default_admin_keys = vec![
|
||||||
"FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL",
|
"x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK".to_string(),
|
||||||
"H21Shi4iE7vgfjWEQNvzmpmBMJSaiZ17PYUcdNoAoKNc",
|
"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";
|
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
|
let pubkey = pubkey
|
||||||
.to_str()
|
.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) {
|
if !ADMIN_ACCOUNTS.contains(&pubkey) {
|
||||||
return Err(Status::unauthenticated("This operation is reserved to admin accounts"));
|
return Err(Status::unauthenticated("This operation is reserved to admin accounts"));
|
||||||
|
Loading…
Reference in New Issue
Block a user