[[bench]]
harness = false
name = "auth_performance"
path = "benches/auth_performance.rs"
[[bench]]
name = "storage_simple"
path = "benches/storage_simple.rs"
[[bin]]
name = "auth-framework"
path = "src/bin/admin.rs"
required-features = ["admin-binary"]
[[bin]]
name = "oauth2_direct_test"
path = "src/bin/oauth2_direct_test.rs"
[[bin]]
name = "oauth2_test_server"
path = "src/bin/oauth2_test_server.rs"
[[bin]]
name = "security_audit"
path = "src/bin/security_audit.rs"
[[bin]]
name = "test_oauth2"
path = "src/bin/test_oauth2.rs"
required-features = ["api-server"]
[dependencies.actix-web]
optional = true
version = "4.11.0"
[dependencies.aes-gcm]
optional = false
version = "0.10.3"
[dependencies.anyhow]
version = "1.0.100"
[dependencies.argon2]
version = "0.5.3"
[dependencies.askama]
optional = true
version = "0.14.0"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.aws-lc-rs]
features = ["aws-lc-sys"]
optional = true
version = "1.14.1"
[dependencies.axum]
features = ["macros"]
optional = true
version = "0.8.6"
[dependencies.base32]
version = "0.5.1"
[dependencies.base64]
version = "0.22.1"
[dependencies.bcrypt]
version = "0.17.1"
[dependencies.bumpalo]
optional = true
version = "3.14"
[dependencies.chacha20poly1305]
optional = true
version = "0.10"
[dependencies.chrono]
features = ["serde"]
version = "0.4.42"
[dependencies.clap]
features = ["derive"]
optional = true
version = "4.5.48"
[dependencies.colored]
optional = true
version = "3.0"
[dependencies.config]
default-features = false
features = ["ini", "json", "ron", "toml", "yaml"]
version = "0.15.18"
[dependencies.console]
optional = true
version = "0.16.1"
[dependencies.coset]
optional = true
version = "0.3.8"
[dependencies.crc32fast]
version = "1.3"
[dependencies.crossterm]
optional = true
version = "0.29.0"
[dependencies.csv]
version = "1.3.1"
[dependencies.dashmap]
version = "6.1"
[dependencies.dialoguer]
optional = true
version = "0.12"
[dependencies.dirs]
version = "6.0"
[dependencies.ed25519-dalek]
features = ["rand_core"]
optional = true
version = "2.2.0"
[dependencies.email_address]
version = "0.2"
[dependencies.futures]
optional = true
version = "0.3.31"
[dependencies.futures-util]
optional = true
version = "0.3.31"
[dependencies.getrandom]
features = ["std"]
version = "0.3.3"
[dependencies.governor]
version = "0.10.1"
[dependencies.hex]
version = "0.4.3"
[dependencies.hmac]
version = "0.12"
[dependencies.html-escape]
version = "0.2.13"
[dependencies.indicatif]
optional = true
version = "0.18"
[dependencies.ipnetwork]
version = "0.21"
[dependencies.jsonwebtoken]
version = "9.2"
[dependencies.lazy_static]
version = "1.5.0"
[dependencies.ldap3]
optional = true
version = "0.12.1"
[dependencies.log]
version = "0.4.28"
[dependencies.maxminddb]
version = "0.26.0"
[dependencies.metrics]
optional = true
version = "0.24.2"
[dependencies.metrics-prometheus]
optional = true
version = "0.11"
[dependencies.nonzero_ext]
version = "0.3.0"
[dependencies.notify]
optional = true
version = "8.2.0"
[dependencies.oauth-device-flows]
optional = true
version = "0.1.0"
[dependencies.object-pool]
optional = true
version = "0.6.0"
[dependencies.openidconnect]
optional = true
version = "4.0.1"
[dependencies.opentelemetry]
features = ["trace"]
optional = true
version = "0.31.0"
[dependencies.opentelemetry-jaeger]
optional = true
version = "0.22.0"
[dependencies.opentelemetry-otlp]
optional = true
version = "0.31.0"
[dependencies.opentelemetry-prometheus]
optional = true
version = "0.29"
[dependencies.opentelemetry_sdk]
features = ["trace"]
optional = true
version = "0.31.0"
[dependencies.otpauth]
optional = true
version = "0.5.1"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.passkey]
optional = true
version = "0.4"
[dependencies.passkey-client]
optional = true
version = "0.4"
[dependencies.prometheus]
optional = true
version = "0.14.0"
[dependencies.quick-xml]
features = ["serialize"]
optional = true
version = "0.38.3"
[dependencies.rand]
features = ["std_rng"]
version = "0.9.2"
[dependencies.ratatui]
optional = true
version = "0.29.0"
[dependencies.redis]
features = ["aio", "tokio-comp"]
optional = true
version = "0.32.7"
[dependencies.regex]
version = "1.11.3"
[dependencies.reqwest]
features = ["json"]
version = "0.12.23"
[dependencies.ring]
version = "0.17.14"
[dependencies.role-system]
features = ["async", "audit", "persistence"]
optional = true
version = "1.1.1"
[dependencies.rpassword]
optional = true
version = "7.4.0"
[dependencies.rustls-webpki]
version = "0.103.7"
[dependencies.secrecy]
features = ["serde"]
version = "0.10.3"
[dependencies.serde]
features = ["derive"]
version = "1.0.228"
[dependencies.serde_derive]
version = "1.0.228"
[dependencies.serde_json]
version = "1.0.145"
[dependencies.serde_urlencoded]
optional = true
version = "0.7"
[dependencies.serde_yaml]
version = "0.9.34-deprecated"
[dependencies.sha1]
version = "0.10"
[dependencies.sha2]
version = "0.10.9"
[dependencies.sms-aws-sns]
optional = true
version = "0.2.0"
[dependencies.sms-core]
optional = true
version = "0.2.0"
[dependencies.sms-plivo]
optional = true
version = "0.2.0"
[dependencies.sms-twilio]
optional = true
version = "0.2.0"
[dependencies.sms-web-axum]
optional = true
version = "0.2.0"
[dependencies.sms-web-generic]
optional = true
version = "0.2.0"
[dependencies.sqlx]
features = ["chrono", "mysql", "postgres", "runtime-tokio-rustls", "uuid"]
optional = true
version = "0.8.6"
[dependencies.subtle]
version = "2.5"
[dependencies.testcontainers]
optional = true
version = "0.25.0"
[dependencies.thiserror]
version = "2.0.17"
[dependencies.time]
features = ["formatting", "parsing", "serde"]
version = "0.3.44"
[dependencies.tokio]
features = ["full"]
version = "1.47.1"
[dependencies.tokio-cron-scheduler]
version = "0.15.0"
[dependencies.tokio-postgres]
optional = true
version = "0.7.14"
[dependencies.tokio-stream]
optional = true
version = "0.1.17"
[dependencies.toml]
version = "0.9.7"
[dependencies.totp-lite]
version = "2.0.1"
[dependencies.tower]
features = ["util"]
optional = true
version = "0.5.2"
[dependencies.tower-http]
features = ["cors", "fs", "trace"]
optional = true
version = "0.6.6"
[dependencies.tracing]
version = "0.1.41"
[dependencies.tracing-opentelemetry]
optional = true
version = "0.32.0"
[dependencies.tracing-subscriber]
features = ["env-filter"]
version = "0.3.20"
[dependencies.tui-input]
optional = true
version = "0.14"
[dependencies.unicode-normalization]
optional = true
version = "0.1"
[dependencies.url]
version = "2.5.7"
[dependencies.urlencoding]
version = "2.1.3"
[dependencies.uuid]
features = ["serde", "v4"]
version = "1.18.1"
[dependencies.warp]
features = ["server", "test"]
optional = true
version = "0.4.2"
[dependencies.x25519-dalek]
optional = true
version = "2.0"
[dependencies.x509-parser]
version = "0.18.0"
[dependencies.zeroize]
features = ["zeroize_derive"]
version = "1.8.2"
[dev-dependencies.axum-test]
version = "18.0"
[dev-dependencies.criterion]
features = ["async_tokio", "html_reports"]
version = "0.7.0"
[dev-dependencies.fastrand]
version = "2.0"
[dev-dependencies.mockito]
version = "1.2"
[dev-dependencies.tempfile]
version = "3.23.0"
[dev-dependencies.test-log]
version = "0.2"
[dev-dependencies.tokio-test]
version = "0.4.4"
[[example]]
name = "axum_integration"
path = "examples/axum_integration.rs"
[[example]]
name = "basic_usage_corrected"
path = "examples/basic_usage_corrected.rs"
[[example]]
name = "cli_auth_tool"
path = "examples/cli_auth_tool.rs"
[[example]]
name = "complete_rest_api_server"
path = "examples/complete_rest_api_server.rs"
required-features = ["api-server"]
[[example]]
name = "debug_server"
path = "examples/debug_server.rs"
[[example]]
name = "enhanced_ergonomics"
path = "examples/enhanced_ergonomics.rs"
[[example]]
name = "oauth2_authorization_server"
path = "examples/oauth2_authorization_server.rs"
[[example]]
name = "performance_demo"
path = "examples/performance_demo.rs"
required-features = ["enhanced-observability", "event-sourcing", "performance-optimization"]
[[example]]
name = "production_deployments"
path = "examples/production_deployments.rs"
[[example]]
name = "simple_oauth2_server"
path = "examples/simple_oauth2_server.rs"
[[example]]
name = "simple_performance_demo"
path = "examples/simple_performance_demo.rs"
[[example]]
name = "simple_working_deployment"
path = "examples/simple_working_deployment.rs"
[[example]]
name = "smskit_integration"
path = "examples/smskit_integration.rs"
[[example]]
name = "test_register"
path = "examples/test_register.rs"
[[example]]
name = "working_demo"
path = "examples/working_demo.rs"
[features]
actix-integration = ["actix-web", "futures-util"]
admin-binary = ["cli", "tui", "web-gui"]
api-server = ["axum", "tower", "tower-http"]
axum-integration = ["axum", "serde_urlencoded", "tower", "tower-http"]
cli = ["clap", "colored", "console", "dialoguer", "indicatif", "rpassword", "tokio-postgres"]
config-hot-reload = ["notify"]
default = ["enhanced-rbac", "postgres-storage"]
distributed-rate-limiting = ["redis"]
docker-tests = ["testcontainers"]
enhanced-crypto = ["chacha20poly1305", "ed25519-dalek", "x25519-dalek"]
enhanced-device-flow = ["oauth-device-flows"]
enhanced-observability = ["futures", "opentelemetry", "opentelemetry-jaeger", "opentelemetry-otlp", "opentelemetry-prometheus", "tokio-stream", "tracing-opentelemetry"]
enhanced-rbac = ["api-server", "role-system"]
event-sourcing = ["futures", "notify", "tokio-stream"]
fips-compliance = ["aws-lc-rs"]
ldap-auth = ["ldap3"]
mysql-storage = ["sqlx"]
openid-connect = ["openidconnect"]
otp-auth = ["otpauth"]
passkeys = ["coset", "passkey", "passkey-client"]
performance-optimization = ["bumpalo", "metrics", "metrics-prometheus", "object-pool", "prometheus"]
postgres-storage = ["sqlx", "tokio-postgres"]
redis-storage = ["redis"]
saml = ["quick-xml"]
smskit = ["sms-aws-sns", "sms-core", "sms-plivo", "sms-twilio", "sms-web-generic"]
smskit-web-axum = ["axum-integration", "sms-web-axum", "smskit"]
testing = []
tiered-storage = ["postgres-storage", "redis"]
tui = ["colored", "console", "crossterm", "indicatif", "ratatui", "tui-input"]
unicode-support = ["unicode-normalization"]
warp-integration = ["warp"]
web-gui = ["askama", "axum", "serde_urlencoded", "tower", "tower-http"]
[lib]
name = "auth_framework"
path = "src/lib.rs"
[package]
authors = ["Eric Evans <ciresnave@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["authentication", "web-programming"]
description = "A comprehensive, production-ready authentication and authorization framework for Rust applications"
documentation = "https://docs.rs/auth-framework"
edition = "2024"
keywords = ["auth", "authentication", "authorization", "jwt", "oauth"]
license = "MIT OR Apache-2.0"
name = "auth-framework"
readme = "README.md"
repository = "https://github.com/ciresnave/auth-framework"
version = "0.5.0-rc1"
[[test]]
name = "code_quality_audit"
path = "tests/code_quality_audit.rs"
[[test]]
name = "comprehensive_api_tests"
path = "tests/comprehensive_api_tests.rs"
[[test]]
name = "critical_authentication_security"
path = "tests/critical_authentication_security.rs"
[[test]]
name = "critical_security_detection"
path = "tests/critical_security_detection.rs"
[[test]]
name = "custom_storage_builder"
path = "tests/custom_storage_builder.rs"
[[test]]
name = "edge_case_comprehensive_tests"
path = "tests/edge_case_comprehensive_tests.rs"
[[test]]
name = "edge_cases_comprehensive"
path = "tests/edge_cases_comprehensive.rs"
[[test]]
name = "enterprise_auth_integration"
path = "tests/enterprise_auth_integration.rs"
[[test]]
name = "error_path_comprehensive"
path = "tests/error_path_comprehensive.rs"
[[test]]
name = "final_comprehensive_security_audit"
path = "tests/final_comprehensive_security_audit.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "oauth21_e2e_tests"
path = "tests/oauth21_e2e_tests.rs"
[[test]]
name = "oauth2_compilation_test"
path = "tests/oauth2_compilation_test.rs"
[[test]]
name = "oauth2_integration_test"
path = "tests/oauth2_integration_test.rs"
[[test]]
name = "oauth_advanced_tests"
path = "tests/oauth_advanced_tests.rs"
[[test]]
name = "oauth_device_tests"
path = "tests/oauth_device_tests.rs"
[[test]]
name = "oauth_introspection_tests"
path = "tests/oauth_introspection_tests.rs"
[[test]]
name = "oauth_par_tests"
path = "tests/oauth_par_tests.rs"
[[test]]
name = "profile_utils_tests"
path = "tests/profile_utils_tests.rs"
[[test]]
name = "rfc_compliance_final"
path = "tests/rfc_compliance_final.rs"
[[test]]
name = "rfc_compliance_tests"
path = "tests/rfc_compliance_tests.rs"
[[test]]
name = "security_comprehensive"
path = "tests/security_comprehensive.rs"
[[test]]
name = "security_dos_protection_tests"
path = "tests/security_dos_protection_tests.rs"
[[test]]
name = "security_ip_blacklisting_tests"
path = "tests/security_ip_blacklisting_tests.rs"
[[test]]
name = "security_mfa_tests"
path = "tests/security_mfa_tests.rs"
[[test]]
name = "security_rate_limiting_tests"
path = "tests/security_rate_limiting_tests.rs"
[[test]]
name = "security_validation_comprehensive"
path = "tests/security_validation_comprehensive.rs"
[[test]]
name = "security_validation_critical"
path = "tests/security_validation_critical.rs"
[[test]]
name = "security_validation_test"
path = "tests/security_validation_test.rs"
[[test]]
name = "security_vulnerability_detection"
path = "tests/security_vulnerability_detection.rs"
[[test]]
name = "simple_comprehensive_tests"
path = "tests/simple_comprehensive_tests.rs"
[[test]]
name = "simple_enterprise_test"
path = "tests/simple_enterprise_test.rs"
[[test]]
name = "simple_integration_test"
path = "tests/simple_integration_test.rs"
[[test]]
name = "simplified_comprehensive_tests"
path = "tests/simplified_comprehensive_tests.rs"
[[test]]
name = "test_coverage_gaps"
path = "tests/test_coverage_gaps.rs"
[[test]]
name = "test_helpers"
path = "tests/test_helpers.rs"
[[test]]
name = "token_edge_tests"
path = "tests/token_edge_tests.rs"
[[test]]
name = "token_exchange_integration"
path = "tests/token_exchange_integration.rs"
[[test]]
name = "vulnerability_testing_analysis"
path = "tests/vulnerability_testing_analysis.rs"
[[test]]
name = "webauthn_saml_api_tests"
path = "tests/webauthn_saml_api_tests.rs"
[[test]]
name = "working_comprehensive_tests"
path = "tests/working_comprehensive_tests.rs"
[[test]]
name = "working_integration_tests"
path = "tests/working_integration_tests.rs"