#![allow(clippy::uninlined_format_args)]
#![allow(clippy::needless_borrows_for_generic_args)]
#![allow(clippy::manual_strip)]
#![allow(clippy::redundant_closure)]
#![allow(clippy::explicit_auto_deref)]
#![allow(clippy::inherent_to_string)]
#![allow(clippy::unwrap_or_default)]
#![allow(clippy::should_implement_trait)]
#![allow(clippy::redundant_pattern_matching)]
#![allow(clippy::ptr_arg)]
#![allow(clippy::new_without_default)]
pub mod audit;
pub mod config;
#[cfg(feature = "consent")]
pub mod consent;
pub mod crypto;
pub mod jwt;
pub mod manager;
#[cfg(feature = "vault")]
pub mod manager_vault;
pub mod middleware;
pub mod models;
#[cfg(feature = "monitoring")]
pub mod monitoring;
pub mod oauth;
pub mod permissions;
pub mod security;
pub mod session;
pub mod storage;
pub mod transport;
pub mod validation;
#[cfg(feature = "vault")]
pub mod vault;
pub use config::AuthConfig;
#[cfg(feature = "consent")]
pub use consent::manager::{ConsentConfig, ConsentManager, ConsentStorage, MemoryConsentStorage};
#[cfg(feature = "consent")]
pub use consent::{
ConsentAuditEntry, ConsentError, ConsentRecord, ConsentStatus, ConsentSummary, ConsentType,
LegalBasis,
};
pub use manager::{
AuthenticationManager, RateLimitStats, RoleRateLimitConfig, RoleRateLimitStats,
ValidationConfig,
};
#[cfg(feature = "vault")]
pub use manager_vault::{VaultAuthManagerError, VaultAuthenticationManager, VaultStatus};
pub use middleware::{
AuthExtractionError, McpAuthConfig, McpAuthMiddleware, SessionMiddleware,
SessionMiddlewareConfig, SessionMiddlewareError, SessionRequestContext,
};
pub use models::{
ApiCompletenessCheck, ApiKey, AuthContext, AuthResult, KeyCreationRequest, KeyUsageStats, Role,
SecureApiKey,
};
#[cfg(feature = "monitoring")]
pub use monitoring::{
AlertAction, AlertRule, AlertThreshold, MonitoringError, SecurityAlert, SecurityDashboard,
SecurityEvent, SecurityEventType, SecurityMetrics, SecurityMonitor, SecurityMonitorConfig,
SystemHealth, create_default_alert_rules,
};
pub use permissions::{
McpPermission, McpPermissionChecker, PermissionAction, PermissionConfig, PermissionError,
PermissionRule, ResourcePermissionConfig, ToolPermissionConfig,
};
pub use security::{
InputSanitizer, RequestLimitsConfig, RequestSecurityConfig, RequestSecurityValidator,
SecurityValidationError, SecurityViolation,
};
pub use session::{
MemorySessionStorage, Session, SessionConfig, SessionError, SessionManager, SessionStats,
SessionStorage,
};
pub use storage::{EnvironmentStorage, FileStorage, StorageBackend};
pub use transport::{
AuthExtractionResult, AuthExtractor, HttpAuthConfig, HttpAuthExtractor, StdioAuthConfig,
StdioAuthExtractor, TransportAuthContext, WebSocketAuthConfig, WebSocketAuthExtractor,
};
#[cfg(feature = "vault")]
pub use vault::{VaultClientInfo, VaultConfig, VaultError, VaultIntegration, VaultType};
pub fn default_config() -> AuthConfig {
AuthConfig::default()
}
pub fn for_application(app_name: &str) -> AuthConfig {
AuthConfig::for_application(app_name)
}
pub async fn create_auth_manager() -> Result<AuthenticationManager, crate::manager::AuthError> {
AuthenticationManager::new(default_config()).await
}
pub async fn create_auth_manager_for_application(
app_name: &str,
) -> Result<AuthenticationManager, crate::manager::AuthError> {
AuthenticationManager::new(for_application(app_name)).await
}