1pub mod config;
7pub mod middleware;
8
9pub use config::*;
11pub use middleware::cors::{CorsMiddleware, CorsConfig};
12pub use middleware::csrf::{CsrfMiddleware, CsrfConfig};
13
14pub type SecurityResult<T> = Result<T, SecurityError>;
16
17#[derive(thiserror::Error, Debug)]
19pub enum SecurityError {
20 #[error("CORS violation: {message}")]
21 CorsViolation { message: String },
22
23 #[error("CSRF token validation failed")]
24 CsrfValidationFailed,
25
26 #[error("Rate limit exceeded: {limit} requests per {window_seconds} seconds")]
27 RateLimitExceeded { limit: u32, window_seconds: u32 },
28
29 #[error("Configuration error: {message}")]
30 ConfigError { message: String },
31
32 #[error("Security policy violation: {message}")]
33 PolicyViolation { message: String },
34}