Skip to main content

Module security

Module security 

Source
Expand description

Security module for shell-tunnel.

This module provides authentication, rate limiting, and input validation for the API layer.

§Features

  • API Key Authentication: Simple Bearer token authentication
  • Rate Limiting: IP-based sliding window rate limiter
  • Input Validation: Command sanitization and dangerous pattern detection

§Example

use shell_tunnel::security::{ApiKeyStore, RateLimiter, CommandValidator};

// Create authentication store
let auth = ApiKeyStore::default();
auth.add_key("my-secret-key");

// Create rate limiter (100 req/min)
let limiter = RateLimiter::default();

// Create command validator
let validator = CommandValidator::default();
assert!(validator.validate_command("echo hello").is_ok());

Re-exports§

pub use auth::auth_middleware;
pub use auth::generate_api_key;
pub use auth::ApiKeyStore;
pub use auth::AuthConfig;
pub use auth::TokenRecord;
pub use capability::preset;
pub use capability::CapabilitySet;
pub use capability::WILDCARD;
pub use rate_limit::rate_limit_middleware;
pub use rate_limit::RateLimitConfig;
pub use rate_limit::RateLimitStats;
pub use rate_limit::RateLimiter;
pub use validation::looks_like_injection;
pub use validation::sanitize_for_display;
pub use validation::CommandValidator;
pub use validation::ValidationConfig;
pub use validation::ValidationError;

Modules§

auth
API Key authentication.
capability
Capability set — the frozen access-control mechanism (Phase A wire contract v1).
rate_limit
Rate limiting implementation.
validation
Input validation and command sanitization.