[package]
edition = "2024"
rust-version = "1.88"
name = "auth-framework"
version = "0.5.0-rc19"
authors = ["Eric Evans <ciresnave@gmail.com>"]
build = false
exclude = [
"CRITICAL_SECURITY_AUDIT_REPORT.md",
"COMPREHENSIVE_AUDIT_RC18.md",
"COMPREHENSIVE_AUDIT_*.md",
"REMEDIATION_PLAN.md",
"RE_AUDIT_*.md",
"FEATURE_FLAGS.md",
"CODE_OF_CONDUCT.md",
"CONTRIBUTING.md",
"COMPATIBILITY.md",
"cliff.toml",
"deny.toml",
"redocly.yaml",
".markdownlint.json",
"/.github/",
"Dockerfile*",
"docker-compose*",
"/docker/",
"/k8s/",
"/monitoring/",
"/nginx/",
"/scripts/",
"/sdks/",
"/e2e/",
"/docs/archives/",
"/docs/quality/",
"/docs/development/",
"/migration/",
"/benches/",
"/static/",
".env.example",
"err*.txt",
"auth-framework.png",
"*.profraw",
"build_*.txt",
"check_*.txt",
"cargo_check_*.txt",
"clippy_*.txt",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A comprehensive, production-ready authentication and authorization framework for Rust applications"
documentation = "https://docs.rs/auth-framework"
readme = "README.md"
keywords = [
"auth",
"authentication",
"authorization",
"jwt",
"oauth",
]
categories = [
"authentication",
"web-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ciresnave/auth-framework"
[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-otlp",
"opentelemetry-prometheus",
"tokio-stream",
"tracing-opentelemetry",
]
enhanced-rbac = [
"api-server",
"role-system",
]
event-sourcing = [
"futures",
"notify",
"tokio-stream",
]
fips-compliance = ["aws-lc-rs"]
hsm = ["cryptoki"]
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 = [
"bergshamra",
"p256",
"p384",
"quick-xml",
]
smskit = [
"sms-aws-sns",
"sms-core",
"sms-plivo",
"sms-twilio",
"sms-web-generic",
]
smskit-web-axum = [
"axum-integration",
"sms-web-axum",
"smskit",
]
sqlite-storage = ["sqlx"]
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"
[[bin]]
name = "auth-framework"
path = "src/bin/admin.rs"
required-features = ["admin-binary"]
[[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"]
[[example]]
name = "axum_integration"
path = "examples/axum_integration.rs"
required-features = ["axum-integration"]
[[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 = "working_demo"
path = "examples/working_demo.rs"
[[test]]
name = "auth_flow_tests"
path = "tests/auth_flow_tests.rs"
[[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 = "monitoring_comprehensive_tests"
path = "tests/monitoring_comprehensive_tests.rs"
[[test]]
name = "multi_tenant_integration"
path = "tests/multi_tenant_integration.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 = "oidc_ciba_jarm_tests"
path = "tests/oidc_ciba_jarm_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 = "storage_mysql"
path = "tests/storage_mysql.rs"
[[test]]
name = "storage_postgres"
path = "tests/storage_postgres.rs"
[[test]]
name = "storage_redis"
path = "tests/storage_redis.rs"
[[test]]
name = "test_coverage_gaps"
path = "tests/test_coverage_gaps.rs"
[[test]]
name = "test_helpers"
path = "tests/test_helpers.rs"
[[test]]
name = "threat_intelligence_tests"
path = "tests/threat_intelligence_tests.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 = "user_lifecycle_security_tests"
path = "tests/user_lifecycle_security_tests.rs"
[[test]]
name = "users_api_tests"
path = "tests/users_api_tests.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"
[dependencies.actix-web]
version = "4.11.0"
optional = true
[dependencies.aes]
version = "0.8"
[dependencies.aes-gcm]
version = "0.10.3"
[dependencies.anyhow]
version = "1.0.100"
[dependencies.argon2]
version = "0.5.3"
[dependencies.askama]
version = "0.15.4"
optional = true
[dependencies.async-trait]
version = "0.1.89"
[dependencies.aws-lc-rs]
version = "1.14.1"
features = ["aws-lc-sys"]
optional = true
[dependencies.axum]
version = "0.8.6"
features = ["macros"]
optional = true
[dependencies.base32]
version = "0.5.1"
[dependencies.base64]
version = "0.22.1"
[dependencies.bcrypt]
version = "0.19.0"
[dependencies.bergshamra]
version = "0.3"
optional = true
[dependencies.bs58]
version = "0.5"
[dependencies.bumpalo]
version = "3.14"
optional = true
[dependencies.chacha20poly1305]
version = "0.10"
optional = true
[dependencies.chrono]
version = "0.4.42"
features = ["serde"]
[dependencies.clap]
version = "4.5.48"
features = ["derive"]
optional = true
[dependencies.colored]
version = "3.0"
optional = true
[dependencies.config]
version = "0.15.18"
features = [
"ini",
"json",
"ron",
"toml",
"yaml",
]
default-features = false
[dependencies.console]
version = "0.16.1"
optional = true
[dependencies.coset]
version = "0.4.2"
optional = true
[dependencies.crc32fast]
version = "1.3"
[dependencies.crossterm]
version = "0.29.0"
optional = true
[dependencies.cryptoki]
version = "0.12.0"
optional = true
[dependencies.csv]
version = "1.3.1"
[dependencies.dashmap]
version = "6.1"
[dependencies.dialoguer]
version = "0.12"
optional = true
[dependencies.dirs]
version = "6.0"
[dependencies.ed25519-dalek]
version = "2.2.0"
features = ["rand_core"]
optional = true
[dependencies.email_address]
version = "0.2"
[dependencies.flate2]
version = "1"
[dependencies.futures]
version = "0.3.31"
optional = true
[dependencies.futures-util]
version = "0.3.31"
optional = true
[dependencies.getrandom]
version = "0.4.2"
features = ["std"]
[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]
version = "0.18"
optional = true
[dependencies.ipnetwork]
version = "0.21"
[dependencies.jsonwebtoken]
version = "10.3"
features = ["rust_crypto"]
[dependencies.lazy_static]
version = "1.5.0"
[dependencies.ldap3]
version = "0.12.1"
optional = true
[dependencies.lettre]
version = "0.11"
features = [
"builder",
"hostname",
"pool",
"smtp-transport",
"tokio1-rustls-tls",
]
default-features = false
[dependencies.log]
version = "0.4.28"
[dependencies.maxminddb]
version = "0.27.3"
[dependencies.md5]
version = "0.10"
package = "md-5"
[dependencies.metrics]
version = "0.24.2"
optional = true
[dependencies.metrics-prometheus]
version = "0.11"
optional = true
[dependencies.nonzero_ext]
version = "0.3.0"
[dependencies.notify]
version = "8.2.0"
optional = true
[dependencies.oauth-device-flows]
version = "0.1.0"
optional = true
[dependencies.object-pool]
version = "0.6.0"
optional = true
[dependencies.openidconnect]
version = "4.0.1"
optional = true
[dependencies.opentelemetry]
version = "0.31.0"
features = ["trace"]
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31.0"
optional = true
[dependencies.opentelemetry-prometheus]
version = "0.31.0"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.31.0"
features = ["trace"]
optional = true
[dependencies.otpauth]
version = "0.5.1"
optional = true
[dependencies.p256]
version = "0.13"
features = [
"ecdsa",
"pkcs8",
]
optional = true
[dependencies.p384]
version = "0.13"
features = [
"ecdsa",
"pkcs8",
]
optional = true
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.pasetors]
version = "0.7.7"
[dependencies.passkey]
version = "0.5.0"
optional = true
[dependencies.passkey-client]
version = "0.5.0"
optional = true
[dependencies.prometheus]
version = "0.14.0"
optional = true
[dependencies.quick-xml]
version = "0.39.2"
features = ["serialize"]
optional = true
[dependencies.rand]
version = "0.10.0"
features = ["std_rng"]
[dependencies.rand_core]
version = "0.6"
[dependencies.ratatui]
version = "0.30.0"
optional = true
[dependencies.rcgen]
version = "0.14"
[dependencies.redis]
version = "1.0.4"
features = [
"aio",
"tokio-comp",
]
optional = true
[dependencies.regex]
version = "1.11.3"
[dependencies.reqwest]
version = "0.13.2"
features = [
"json",
"form",
]
[dependencies.ring]
version = "0.17.14"
[dependencies.role-system]
version = "1.1.1"
features = [
"async",
"audit",
"persistence",
]
optional = true
[dependencies.rpassword]
version = "7.4.0"
optional = true
[dependencies.rsa]
version = "0.9"
features = ["sha2"]
[dependencies.rustls-webpki]
version = "0.103.11"
[dependencies.secrecy]
version = "0.10.3"
features = ["serde"]
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.145"
[dependencies.serde_urlencoded]
version = "0.7"
optional = true
[dependencies.serde_yaml]
version = "0.9"
[dependencies.sha1]
version = "0.10"
[dependencies.sha2]
version = "0.10.9"
[dependencies.sms-aws-sns]
version = "0.3.0"
optional = true
[dependencies.sms-core]
version = "0.3.0"
optional = true
[dependencies.sms-plivo]
version = "0.3.0"
optional = true
[dependencies.sms-twilio]
version = "0.3.0"
optional = true
[dependencies.sms-web-axum]
version = "0.3.0"
optional = true
[dependencies.sms-web-generic]
version = "0.3.0"
optional = true
[dependencies.sqlx]
version = "0.8.6"
features = [
"chrono",
"mysql",
"sqlite",
"postgres",
"runtime-tokio-rustls",
"uuid",
]
optional = true
[dependencies.subtle]
version = "2.5"
[dependencies.sysinfo]
version = "0.32"
[dependencies.tar]
version = "0.4.45"
[dependencies.testcontainers]
version = "0.27.2"
optional = true
[dependencies.thiserror]
version = "2.0.17"
[dependencies.time]
version = "0.3.47"
features = [
"formatting",
"parsing",
"serde",
]
[dependencies.tokio]
version = "1.47.1"
features = ["full"]
[dependencies.tokio-cron-scheduler]
version = "0.15.0"
[dependencies.tokio-postgres]
version = "0.7.14"
optional = true
[dependencies.tokio-stream]
version = "0.1.17"
optional = true
[dependencies.toml]
version = "0.9"
[dependencies.totp-lite]
version = "2.0.1"
[dependencies.tower]
version = "0.5.2"
features = ["util"]
optional = true
[dependencies.tower-http]
version = "0.6.6"
features = [
"cors",
"fs",
"trace",
]
optional = true
[dependencies.tracing]
version = "0.1.41"
[dependencies.tracing-opentelemetry]
version = "0.32.0"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.20"
features = ["env-filter"]
[dependencies.tui-input]
version = "0.15.0"
optional = true
[dependencies.unicode-normalization]
version = "0.1"
optional = true
[dependencies.url]
version = "2.5.7"
[dependencies.urlencoding]
version = "2.1.3"
[dependencies.uuid]
version = "1.18.1"
features = [
"serde",
"v4",
]
[dependencies.warp]
version = "0.4.2"
features = [
"server",
"test",
]
optional = true
[dependencies.x25519-dalek]
version = "2.0"
optional = true
[dependencies.x509-parser]
version = "0.18.0"
[dependencies.zeroize]
version = "1.8.2"
features = ["zeroize_derive"]
[dependencies.zip]
version = "2"
[dev-dependencies.axum-test]
version = "19.1.1"
[dev-dependencies.criterion]
version = "0.8.2"
features = [
"async_tokio",
"html_reports",
]
[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"