mirror of
https://github.com/sadoyan/aralez.git
synced 2026-04-30 23:08:40 +08:00
Type changes, auth override policy
This commit is contained in:
@@ -8,7 +8,6 @@ use std::collections::HashMap;
|
||||
use std::sync::atomic::AtomicUsize;
|
||||
use std::sync::Arc;
|
||||
use std::{env, fs};
|
||||
// use tokio::sync::oneshot::{Receiver, Sender};
|
||||
|
||||
pub async fn load_configuration(d: &str, kind: &str) -> (Option<Configuration>, String) {
|
||||
let yaml_data = match kind {
|
||||
@@ -100,18 +99,13 @@ async fn populate_headers_and_auth(config: &mut Configuration, parsed: &Config)
|
||||
info!("Applied Global Rate Limit : {} request per second", rate);
|
||||
}
|
||||
|
||||
// ======================================================================================== //
|
||||
if let Some(auth) = &parsed.authorization {
|
||||
let name = auth.get("type").unwrap_or(&"".to_string()).to_string();
|
||||
let creds = auth.get("creds").unwrap_or(&"".to_string()).to_string();
|
||||
config
|
||||
.extraparams
|
||||
.authentication
|
||||
.insert(Arc::from("authorization"), vec![Arc::from(name), Arc::from(creds)]);
|
||||
} else {
|
||||
config.extraparams.authentication = DashMap::new();
|
||||
if let Some(pa) = &parsed.authorization {
|
||||
let y: InnerAuth = InnerAuth {
|
||||
auth_type: Arc::from(pa.auth_type.clone()),
|
||||
auth_cred: Arc::from(pa.auth_cred.clone()),
|
||||
};
|
||||
config.extraparams.authentication = Some(y);
|
||||
}
|
||||
// ======================================================================================== //
|
||||
}
|
||||
|
||||
async fn populate_file_upstreams(config: &mut Configuration, parsed: &Config) {
|
||||
@@ -255,12 +249,5 @@ pub fn build_headers(path_config: &Option<Vec<String>>, _config: &Configuration,
|
||||
hl.push((Arc::from(key.trim()), Arc::from(val.trim())));
|
||||
}
|
||||
}
|
||||
// if let Some(push) = config.client_headers.get("GLOBAL_HEADERS") {
|
||||
// for k in push.iter() {
|
||||
// for x in k.value() {
|
||||
// hl.push(x.to_owned());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,8 +13,7 @@ pub type Headers = DashMap<Arc<str>, DashMap<Arc<str>, Vec<(Arc<str>, Arc<str>)>
|
||||
pub struct Extraparams {
|
||||
pub to_https: Option<bool>,
|
||||
pub sticky_sessions: bool,
|
||||
pub authentication: DashMap<Arc<str>, Vec<Arc<str>>>,
|
||||
// pub authentication: InnerAuth,
|
||||
pub authentication: Option<InnerAuth>,
|
||||
pub rate_limit: Option<isize>,
|
||||
}
|
||||
|
||||
@@ -57,7 +56,7 @@ pub struct Config {
|
||||
#[serde(default)]
|
||||
pub server_headers: Option<Vec<String>>,
|
||||
#[serde(default)]
|
||||
pub authorization: Option<HashMap<String, String>>,
|
||||
pub authorization: Option<Auth>,
|
||||
#[serde(default)]
|
||||
pub consul: Option<Consul>,
|
||||
#[serde(default)]
|
||||
@@ -87,7 +86,6 @@ pub struct PathConfig {
|
||||
pub server_headers: Option<Vec<String>>,
|
||||
pub rate_limit: Option<isize>,
|
||||
pub healthcheck: Option<bool>,
|
||||
// pub authorization: Option<HashMap<String, String>>,
|
||||
pub authorization: Option<Auth>,
|
||||
}
|
||||
#[derive(Debug, Default)]
|
||||
@@ -140,7 +138,6 @@ pub struct InnerMap {
|
||||
pub to_https: bool,
|
||||
pub rate_limit: Option<isize>,
|
||||
pub healthcheck: Option<bool>,
|
||||
// pub authorization: Option<DashMap<Arc<str>, Arc<str>>>,
|
||||
pub authorization: Option<Arc<InnerAuth>>,
|
||||
}
|
||||
|
||||
@@ -148,7 +145,6 @@ pub struct InnerMap {
|
||||
impl InnerMap {
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
// address: "127.0.0.1".parse().unwrap(),
|
||||
address: Arc::from("127.0.0.1"),
|
||||
port: Default::default(),
|
||||
is_ssl: Default::default(),
|
||||
|
||||
Reference in New Issue
Block a user