diff --git a/Cargo.toml b/Cargo.toml index 48a8985..d4a3ec6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ chrono = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } -unshell-obfuscate = {path = "./unshell-obfuscate"} +unshell-obfuscate = { path = "./unshell-obfuscate" } # unshell-crypt = {path = "./unshell-crypt"} [workspace.dependencies] diff --git a/src/config/config_struct_list.rs b/src/config/config_struct_list.rs index 7f72d5b..af30830 100644 --- a/src/config/config_struct_list.rs +++ b/src/config/config_struct_list.rs @@ -1,4 +1,4 @@ -use serde_json::{Value, json}; +use serde_json::Value; use crate::config::ConfigStructField; diff --git a/src/logger/macros.rs b/src/logger/macros.rs index 669984f..65d71e8 100644 --- a/src/logger/macros.rs +++ b/src/logger/macros.rs @@ -2,6 +2,7 @@ #[macro_export] macro_rules! debug { ($fmt:tt) => {{ + use $crate::unshell_obfuscate; let log_result = unshell_obfuscate::format_obs!($fmt); $crate::logger::add_record( @@ -17,6 +18,7 @@ macro_rules! debug { ); }}; ($fmt:tt, $($arg:expr),*) => {{ + use $crate::unshell_obfuscate; let log_result = unshell_obfuscate::format_obs!($fmt, $($arg),*); $crate::logger::add_record( @@ -48,6 +50,7 @@ macro_rules! debug { #[macro_export] macro_rules! info { ($fmt:tt) => {{ + use $crate::unshell_obfuscate; let log_result = unshell_obfuscate::format_obs!($fmt); $crate::logger::add_record( @@ -63,6 +66,7 @@ macro_rules! info { ); }}; ($fmt:tt, $($arg:expr),*) => {{ + use $crate::unshell_obfuscate; let log_result = unshell_obfuscate::format_obs!($fmt, $($arg),*); $crate::logger::add_record( @@ -82,6 +86,8 @@ macro_rules! info { #[macro_export] macro_rules! warn { ($fmt:tt) => {{ + use $crate::unshell_obfuscate; + let log_result = unshell_obfuscate::format_obs!($fmt); $crate::logger::add_record( @@ -97,6 +103,8 @@ macro_rules! warn { ); }}; ($fmt:tt, $($arg:expr),*) => {{ + use $crate::unshell_obfuscate; + let log_result = unshell_obfuscate::format_obs!($fmt, $($arg),*); $crate::logger::add_record( @@ -131,6 +139,7 @@ macro_rules! error { ); }}; ($fmt:tt, $($arg:expr),*) => {{ + use $crate::unshell_obfuscate; let log_result = unshell_obfuscate::format_obs!($fmt, $($arg),*); $crate::logger::add_record( diff --git a/unshell-manager/Cargo.toml b/unshell-manager/Cargo.toml index 9c07882..d6ed06c 100644 --- a/unshell-manager/Cargo.toml +++ b/unshell-manager/Cargo.toml @@ -4,13 +4,10 @@ edition = "2024" [features] log = ["unshell/log"] -log_debug = ["log", "unshell/log_debug"] +log_debug = ["unshell/log_debug"] obfuscate = ["unshell/obfuscate"] -# client = ["unshell-lib/client"] -# server = ["unshell-lib/server"] - [dependencies] unshell = {path = "../", default-features = false} diff --git a/unshell-obfuscate/src/obfuscate/strings.rs b/unshell-obfuscate/src/obfuscate/strings.rs index 4fd3e31..cfb9a6f 100644 --- a/unshell-obfuscate/src/obfuscate/strings.rs +++ b/unshell-obfuscate/src/obfuscate/strings.rs @@ -3,17 +3,20 @@ use quote::quote; use syn::{ItemFn, LitStr, parse_macro_input}; use unshell_crypt::{BACKUP_ENV_KEY, ENV_KEY_NAME, STATIC_IV, aes::encrypt_aes_lines, fill}; +#[cfg(feature = "obfuscate")] #[static_init::dynamic] static KEY: String = { std::env::var(ENV_KEY_NAME).unwrap_or({ - // Diagnostic::new(proc_macro::Level::Warning, "Using default encryption key!").emit(); - println!("Using default encryption key!"); - BACKUP_ENV_KEY.to_owned() }) }; +// If there isn't any encryption +#[cfg(not(feature = "obfuscate"))] +#[static_init::dynamic] +static KEY: String = "".to_string(); + pub fn obfuscated_symbol(_attr: TokenStream, item: TokenStream) -> TokenStream { // Parse the input function diff --git a/unshell-server/Cargo.toml b/unshell-server/Cargo.toml index bc5f328..5a9d4b4 100644 --- a/unshell-server/Cargo.toml +++ b/unshell-server/Cargo.toml @@ -3,9 +3,9 @@ name = "unshell-server" edition = "2024" [features] -default = [] +default = ["log_debug"] log = ["unshell/log", "unshell-manager/log"] -log_debug = ["log", "unshell/log_debug", "unshell-manager/log_debug"] +log_debug = ["unshell/log_debug", "unshell-manager/log_debug"] [dependencies] unshell = { path = "../" } diff --git a/unshell-server/src/lib.rs b/unshell-server/src/lib.rs index 353d867..ee9fe40 100644 --- a/unshell-server/src/lib.rs +++ b/unshell-server/src/lib.rs @@ -31,7 +31,25 @@ use jsonwebtoken::{DecodingKey, EncodingKey}; static EXPIRE_DURATION: Duration = Duration::hours(12); #[dynamic] -static JWT_SECRET: String = std::env::var("JWT_SECRET").expect("JWT_SECRET must be set"); + +static JWT_SECRET: String = { + if let Ok(env_secret) = std::env::var("JWT_SECRET") { + env_secret + } else { + println!( + r#" +############## +# WARNING: You are using the default JWT secret, used for creating user sessions +# With this default key, anyone can login as any user. +##############"# + ); + "DEFAULT_SECRET".to_string() + } +}; + +// std::env::var("JWT_SECRET").unwrap_or(|| -> String { +// return "TEST".to_string(); +// }()); #[dynamic] static JWT_ENCODING_KEY: EncodingKey = EncodingKey::from_secret(JWT_SECRET.as_bytes());