mirror of
https://github.com/gbrigandi/mcp-server-wazuh.git
synced 2025-07-13 07:04:49 -06:00
fixed minor issues with passing configuration as environment variables.
This commit is contained in:
parent
d86a4e1136
commit
2fd14a0063
71
src/main.rs
71
src/main.rs
@ -90,44 +90,43 @@ impl WazuhToolsServer {
|
||||
fn new() -> Result<Self, anyhow::Error> {
|
||||
dotenv().ok();
|
||||
|
||||
let wazuh_host = env::var("WAZUH_HOST").unwrap_or_else(|_| "localhost".to_string());
|
||||
let wazuh_api_port = env::var("WAZUH_API_PORT")
|
||||
.unwrap_or_else(|_| "55000".to_string())
|
||||
.parse::<u16>()
|
||||
.map_err(|e| anyhow::anyhow!("Invalid WAZUH_API_PORT: {}", e))?;
|
||||
let wazuh_indexer_port = env::var("WAZUH_INDEXER_PORT")
|
||||
.unwrap_or_else(|_| "9200".to_string())
|
||||
.parse::<u16>()
|
||||
.map_err(|e| anyhow::anyhow!("Invalid WAZUH_INDEXER_PORT: {}", e))?;
|
||||
|
||||
// For backward compatibility, also check WAZUH_PORT
|
||||
let wazuh_port = env::var("WAZUH_PORT")
|
||||
.ok()
|
||||
.and_then(|p| p.parse::<u16>().ok())
|
||||
.unwrap_or(wazuh_indexer_port);
|
||||
|
||||
let wazuh_user = env::var("WAZUH_USER").unwrap_or_else(|_| "admin".to_string());
|
||||
let wazuh_pass = env::var("WAZUH_PASS").unwrap_or_else(|_| "admin".to_string());
|
||||
let verify_ssl = env::var("VERIFY_SSL")
|
||||
.unwrap_or_else(|_| "false".to_string())
|
||||
.to_lowercase()
|
||||
== "true";
|
||||
let api_host = env::var("WAZUH_API_HOST").unwrap_or_else(|_| "localhost".to_string());
|
||||
let api_port: u16 = env::var("WAZUH_API_PORT")
|
||||
.unwrap_or_else(|_| "55000".to_string())
|
||||
.parse()
|
||||
.unwrap_or(55000);
|
||||
let api_username = env::var("WAZUH_API_USERNAME").unwrap_or_else(|_| "wazuh".to_string());
|
||||
let api_password = env::var("WAZUH_API_PASSWORD").unwrap_or_else(|_| "wazuh".to_string());
|
||||
|
||||
let protocol = env::var("WAZUH_TEST_PROTOCOL").unwrap_or_else(|_| "https".to_string());
|
||||
tracing::debug!(?protocol, "Using Wazuh protocol for client from WAZUH_TEST_PROTOCOL or default");
|
||||
let indexer_host = env::var("WAZUH_INDEXER_HOST").unwrap_or_else(|_| "localhost".to_string());
|
||||
let indexer_port: u16 = env::var("WAZUH_INDEXER_PORT")
|
||||
.unwrap_or_else(|_| "9200".to_string())
|
||||
.parse()
|
||||
.unwrap_or(9200);
|
||||
let indexer_username =
|
||||
env::var("WAZUH_INDEXER_USERNAME").unwrap_or_else(|_| "admin".to_string());
|
||||
let indexer_password =
|
||||
env::var("WAZUH_INDEXER_PASSWORD").unwrap_or_else(|_| "admin".to_string());
|
||||
|
||||
let wazuh_factory = WazuhClientFactory::new(
|
||||
wazuh_host.clone(),
|
||||
wazuh_api_port,
|
||||
wazuh_user.clone(),
|
||||
wazuh_pass.clone(),
|
||||
wazuh_host,
|
||||
wazuh_port,
|
||||
wazuh_user,
|
||||
wazuh_pass,
|
||||
verify_ssl,
|
||||
Some(protocol),
|
||||
);
|
||||
let verify_ssl = env::var("WAZUH_VERIFY_SSL")
|
||||
.unwrap_or_else(|_| "false".to_string())
|
||||
.parse()
|
||||
.unwrap_or(false);
|
||||
|
||||
let test_protocol = env::var("WAZUH_TEST_PROTOCOL")
|
||||
.ok().or_else(|| Some("https".to_string()));
|
||||
|
||||
let wazuh_factory = WazuhClientFactory::new(
|
||||
api_host,
|
||||
api_port,
|
||||
api_username,
|
||||
api_password,
|
||||
indexer_host,
|
||||
indexer_port,
|
||||
indexer_username,
|
||||
indexer_password,
|
||||
verify_ssl,
|
||||
test_protocol);
|
||||
|
||||
let wazuh_indexer_client = wazuh_factory.create_indexer_client();
|
||||
let wazuh_rules_client = wazuh_factory.create_rules_client();
|
||||
|
@ -19,10 +19,14 @@ impl McpStdioClient {
|
||||
fn start() -> Result<Self, Box<dyn std::error::Error>> {
|
||||
let mut child = Command::new("cargo")
|
||||
.args(["run", "--bin", "mcp-server-wazuh"])
|
||||
.env("WAZUH_HOST", "nonexistent.example.com") // Use non-existent host
|
||||
.env("WAZUH_PORT", "9999")
|
||||
.env("WAZUH_USER", "test")
|
||||
.env("WAZUH_PASS", "test")
|
||||
.env("WAZUH_API_HOST", "nonexistent.example.com") // Use non-existent host
|
||||
.env("WAZUH_API_PORT", "9999")
|
||||
.env("WAZUH_API_USER", "test")
|
||||
.env("WAZUH_API_PASS", "test")
|
||||
.env("WAZUH_INDEXER_HOST", "nonexistent.example.com") // Use non-existent host
|
||||
.env("WAZUH_INDEXER_PORT", "8888")
|
||||
.env("WAZUH_INDEXER_USER", "test")
|
||||
.env("WAZUH_INDEXER_PASS", "test")
|
||||
.env("VERIFY_SSL", "false")
|
||||
.env("RUST_LOG", "error") // Minimize logging noise
|
||||
.stdin(Stdio::piped())
|
||||
|
@ -26,10 +26,10 @@ impl McpServerProcess {
|
||||
fn start_with_mock_wazuh(mock_server: &MockWazuhServer) -> Result<Self, Box<dyn std::error::Error>> {
|
||||
let mut child = Command::new("cargo")
|
||||
.args(["run", "--bin", "mcp-server-wazuh"])
|
||||
.env("WAZUH_HOST", mock_server.host())
|
||||
.env("WAZUH_PORT", mock_server.port().to_string())
|
||||
.env("WAZUH_USER", "admin")
|
||||
.env("WAZUH_PASS", "admin")
|
||||
.env("WAZUH_INDEXER_HOST", mock_server.host())
|
||||
.env("WAZUH_INDEXER_PORT", mock_server.port().to_string())
|
||||
.env("WAZUH_INDEXER_USER", "admin")
|
||||
.env("WAZUH_INDEXER_PASS", "admin")
|
||||
.env("VERIFY_SSL", "false")
|
||||
.env("WAZUH_TEST_PROTOCOL", "http")
|
||||
.env("RUST_LOG", "warn") // Reduce noise in tests
|
||||
|
Loading…
Reference in New Issue
Block a user