pulseengine-mcp-security 0.17.1

[DEPRECATED] Use pulseengine-security instead. MCP security validation.
Documentation
//! Security middleware implementation

use crate::config::SecurityConfig;
use pulseengine_mcp_protocol::{Error, Request, Response};

/// Simple request context for security
#[derive(Debug, Clone)]
pub struct RequestContext {
    pub request_id: uuid::Uuid,
}

/// Security middleware for request/response processing
#[derive(Clone)]
pub struct SecurityMiddleware {
    config: SecurityConfig,
}

impl SecurityMiddleware {
    pub fn new(config: SecurityConfig) -> Self {
        Self { config }
    }

    /// Process a request through security middleware
    ///
    /// # Errors
    ///
    /// Returns an error if the request fails validation checks
    pub fn process_request(
        &self,
        request: Request,
        _context: &RequestContext,
    ) -> Result<Request, Error> {
        if self.config.validate_requests {
            // Basic validation - ensure required fields
            if request.jsonrpc != "2.0" {
                return Err(Error::invalid_request("Invalid JSON-RPC version"));
            }

            if request.method.is_empty() {
                return Err(Error::invalid_request("Method cannot be empty"));
            }
        }

        Ok(request)
    }

    /// Process a response through security middleware
    ///
    /// # Errors
    ///
    /// Currently always succeeds, but may return errors in future implementations
    pub fn process_response(
        &self,
        response: Response,
        _context: &RequestContext,
    ) -> Result<Response, Error> {
        // Add security headers or process response as needed
        Ok(response)
    }
}

#[cfg(test)]
#[path = "middleware_tests.rs"]
mod middleware_tests;