Skip to main content

Module prelude

Module prelude 

Source
Expand description

Convenience re-exports for common types — use auth_framework::prelude::*. Auth Framework Prelude

This module provides a convenient way to import the most commonly used types and traits from the auth framework. Instead of importing individual types, you can simply use:

use auth_framework::prelude::*;

This imports all the essential types you need to get started with authentication and authorization in your application.

§Recommended Entry Points

§What’s Included

§Core Framework Types

  • AuthFramework - Main authentication framework
  • AuthConfig - Configuration builder
  • AuthError - Error type with detailed error variants
  • [AuthFrameworkResult] - Convenient Result type alias

§Authentication Methods

§Tokens and Sessions

  • AuthToken - Authentication token representation
  • [SessionData] - Session data structure
  • ProviderProfile - Provider-backed user profile information

§Permissions and Authorization

  • Permission - Permission representation
  • Role - Role representation with builder methods
  • [AbacPolicy] - Attribute-based access control policy with builder methods
  • [Delegation] - Permission delegation with builder methods
  • PermissionChecker - Permission validation trait

§Storage Abstractions

  • [AuthStorage] - Storage trait for persistence
  • [MemoryStorage] - In-memory storage implementation

§Web Framework Integration

  • RequireAuth - Middleware for requiring authentication
  • AuthenticatedUser - Extractor for authenticated users
  • RequirePermission - Middleware for permission checking

§Builder Patterns and Helpers

  • [AuthBuilder] - Fluent builder for framework setup
  • AuthConfigBuilder - Organized builder for AuthConfig with grouped settings
  • [SecurityPreset] - Pre-configured security levels
  • AppConfigBuilder - Simple application configuration builder
  • LayeredConfigBuilder - Layered configuration builder
  • [AdvancedPermissionCheck] - Builder for multi-source permission checks
  • [ExecutionMode] - DryRun vs Execute for maintenance operations
  • [UserStatus] - Active vs Inactive for user account state
  • [SessionFilter] - ActiveOnly vs IncludeInactive for session listing

§Time and Rate Limiting Helpers

  • Time duration helpers: [hours], [minutes], [days], [weeks]
  • Rate limiting helpers: [requests], [RequestCount::per_second], [RequestCount::per_minute], [RequestCount::per_hour]

§Quick Start Example

use auth_framework::prelude::*;

#[tokio::main]
async fn main() -> AuthFrameworkResult<()> {
    // Create auth framework with sensible defaults
    let auth = AuthFramework::quick_start()
        .jwt_auth_from_env()
        .with_postgres_from_env()
        .build().await?;

    // Create a token
    let token = auth.create_auth_token(
        "user123",
        vec!["read".to_string()],
        "jwt",
        None
    ).await?;

    // Validate token
    if auth.validate_token(&token).await? {
        println!("Token is valid!");
    }

    Ok(())
}

Re-exports§

pub use crate::AuthFramework;
pub use crate::ModularAuthFramework;
pub use crate::auth::AdminOperations;
pub use crate::auth::AuditOperations;
pub use crate::auth::AuthStats;
pub use crate::auth::AuthorizationOperations;
pub use crate::auth::MfaOperations;
pub use crate::auth::MonitoringOperations;
pub use crate::auth::SessionOperations;
pub use crate::auth::TokenOperations;
pub use crate::auth::UserInfo;
pub use crate::auth::UserOperations;
pub use crate::auth_operations::AuditLogQuery;
pub use crate::auth_operations::DelegationRequest;
pub use crate::auth_operations::ExecutionMode;
pub use crate::auth_operations::PermissionContext;
pub use crate::auth_operations::SessionCreateRequest;
pub use crate::auth_operations::SessionFilter;
pub use crate::auth_operations::TokenCreateRequest;
pub use crate::auth_operations::UserListQuery;
pub use crate::auth_operations::UserStatus;
pub use crate::config::app_config::AppConfig;
pub use crate::config::app_config::ConfigBuilder as AppConfigBuilder;
pub use crate::config::config_manager::AuthFrameworkSettings;
pub use crate::config::config_manager::ConfigBuilder as LayeredConfigBuilder;
pub use crate::config::config_manager::ConfigManager;
pub use crate::config::AuditConfig;
pub use crate::config::AuthConfig;
pub use crate::config::AuthConfigBuilder;
pub use crate::config::CookieSameSite;
pub use crate::config::CorsConfig;
pub use crate::config::JwtAlgorithm;
pub use crate::config::PasswordHashAlgorithm;
pub use crate::config::RateLimitConfig;
pub use crate::config::SecurityConfig;
pub use crate::config::StorageConfig;
pub use crate::errors::AuthError;
pub use crate::errors::DeviceFlowError;
pub use crate::errors::MfaError;
pub use crate::errors::OAuthProviderError;
pub use crate::errors::PermissionError;
pub use crate::errors::Result;
pub use crate::errors::StorageError;
pub use crate::errors::TokenError;
pub use crate::methods::ApiKeyMethod;
pub use crate::methods::AuthMethod;
pub use crate::methods::AuthMethodEnum;
pub use crate::methods::JwtMethod;
pub use crate::methods::MethodResult;
pub use crate::methods::OAuth2Method;
pub use crate::methods::PasswordMethod;
pub use crate::types::AdditionalParams;
pub use crate::types::GrantTypes;
pub use crate::types::IpList;
pub use crate::types::Permissions;
pub use crate::types::RedirectUris;
pub use crate::types::ResponseTypes;
pub use crate::types::Roles;
pub use crate::types::Scopes;
pub use crate::types::UserAttributes;
pub use crate::types::UserAttributesString;
pub use crate::authentication::credentials::Credential;
pub use crate::providers::OAuthProvider;
pub use crate::providers::OAuthProviderConfig;
pub use crate::providers::OAuthProviderConfigBuilder;
pub use crate::providers::ProviderProfile;
pub use crate::tokens::AuthToken;
pub use crate::tokens::AuthTokenBuilder;
pub use crate::tokens::TokenMetadata;
pub use crate::tokens::TokenMetadataBuilder;
pub use crate::permissions::AbacPolicy;
pub use crate::permissions::AdvancedPermissionCheck;
pub use crate::permissions::Delegation;
pub use crate::permissions::Permission;
pub use crate::permissions::PermissionChecker;
pub use crate::permissions::Role;
pub use crate::authorization::AbacPermission as AuthzPermission;
pub use crate::authorization::AbacRole as AuthzRole;
pub use crate::authorization::AccessCondition;
pub use crate::authorization::AuthorizationEngine;
pub use crate::storage::AuthStorage;
pub use crate::storage::MemoryStorage;
pub use crate::storage::SessionData;
pub use crate::security::secure_session::DeviceFingerprint;
pub use crate::security::secure_session::SecureSession;
pub use crate::security::secure_session::SecureSessionConfig;
pub use crate::security::secure_session::SecureSessionManager;
pub use crate::security::secure_session::SecurityFlags;
pub use crate::session::manager::DeviceInfo;
pub use crate::session::manager::Session;
pub use crate::session::manager::SessionConfig;
pub use crate::session::manager::SessionManager;
pub use crate::session::manager::SessionState;
pub use crate::monitoring::HealthCheckResult;
pub use crate::monitoring::HealthStatus;
pub use crate::monitoring::MonitoringManager;
pub use crate::monitoring::PerformanceMetrics;
pub use crate::monitoring::SecurityEvent;
pub use crate::monitoring::SecurityEventBuilder;
pub use crate::monitoring::SecurityEventSeverity;
pub use crate::monitoring::SecurityEventType;
pub use crate::audit::AuditEvent;
pub use crate::audit::AuditEventBuilder;
pub use crate::audit::AuditEventType;
pub use crate::audit::AuditLogger;
pub use crate::audit::AuditQuery;
pub use crate::audit::AuditQueryBuilder;
pub use crate::audit::EventOutcome;
pub use crate::audit::RiskLevel;
pub use crate::security::secure_jwt::SecureJwtClaims;
pub use crate::security::secure_jwt::SecureJwtConfig;
pub use crate::security::secure_jwt::SecureJwtValidator;
pub use crate::security::secure_utils::SecureComparison;
pub use crate::security::secure_utils::SecureRandomGen;
pub use crate::security::SecurityAuditReport;
pub use crate::security::SecurityAuditStatus;
pub use crate::security::SecurityIssue;
pub use crate::security::SecuritySeverity;
pub use crate::utils::rate_limit::RateLimiter;
pub use crate::api::ApiError;
pub use crate::api::ApiResponse;
pub use crate::api::ApiServer;
pub use crate::api::ApiState;
pub use crate::server::oidc::core::IdTokenRequest;
pub use crate::server::oidc::core::OidcConfigBuilder;
pub use crate::server::oidc::IdTokenClaims;
pub use crate::server::oidc::Jwk;
pub use crate::server::oidc::JwkSet;
pub use crate::server::oidc::OidcConfig;
pub use crate::server::oidc::OidcDiscoveryDocument;
pub use crate::server::oidc::OidcProvider;
pub use crate::server::oidc::UserInfo as OidcUserInfo;
pub use crate::oauth2_server::AuthorizationRequest;
pub use crate::oauth2_server::GrantType;
pub use crate::oauth2_server::OAuth2Config;
pub use crate::oauth2_server::OAuth2ConfigBuilder;
pub use crate::oauth2_server::OAuth2Server;
pub use crate::oauth2_server::ResponseType;
pub use crate::oauth2_server::TokenRequest;
pub use crate::oauth2_server::TokenResponse;
pub use rate::RequestCount;
pub use rate::requests;
pub use time::days;
pub use time::hours;
pub use time::minutes;
pub use time::seconds;
pub use time::weeks;
pub use crate::security::SecurityPreset;
pub use crate::builders::*;

Modules§

rate
time

Enums§

PerformancePreset
UseCasePreset

Type Aliases§

AsyncAuthHandler
A boxed, Send-safe async future returning AuthFrameworkResult<()>.
AuthFrameworkResult
Convenience alias for Result<T, AuthError>.