pub mod error;
pub use error::{PepError, Result};
#[cfg(any(feature = "oidc", feature = "oidc-client", feature = "oidc-resource-server"))]
pub mod oidc;
#[cfg(all(feature = "axum", any(feature = "oidc", feature = "oidc-client", feature = "oidc-resource-server")))]
pub mod axum_integration;
#[cfg(all(feature = "axum", any(feature = "oidc", feature = "oidc-client", feature = "oidc-resource-server")))]
pub use axum_integration as axum;
#[cfg(feature = "config")]
pub mod config;
#[cfg(all(feature = "config", feature = "cedar"))]
pub use config::PepConfig; #[cfg(feature = "config")]
pub use config::{OidcConfig, OidcDevConfig, load_config};
#[cfg(feature = "oidc-client")]
pub mod oidc_client;
#[cfg(feature = "oidc-resource-server")]
pub mod oidc_resource_server;
#[cfg(any(feature = "oidc", feature = "oidc-client", feature = "oidc-resource-server"))]
pub use crate::oidc::types::{JwtClaims, OidcDiscoveryDocument, DevConfig};
#[cfg(any(feature = "oidc", feature = "oidc-client"))]
pub use crate::oidc::types::OidcClientConfig;
#[cfg(any(feature = "oidc", feature = "oidc-resource-server"))]
pub use crate::oidc::types::{JwtValidationOptions, ResourceServerConfig, CachedJwks, CachedDiscoveryRaw};
#[cfg(any(feature = "oidc", feature = "oidc-resource-server"))]
pub use crate::oidc::resource_server::{CachedUserInfo, UserInfoCache};
#[cfg(all(feature = "axum", any(feature = "oidc", feature = "oidc-client", feature = "oidc-resource-server")))]
pub use axum_integration::{JwtClaimsExtractor, extract_bearer_token};
#[cfg(feature = "authorization")]
pub mod auth;
#[cfg(feature = "authorization")]
pub use auth::{AuthorizationError, RequireRole, RequireScope};
#[cfg(feature = "rfc9728")]
pub mod rfc9728;
#[cfg(feature = "rfc9728")]
pub use rfc9728::{ProtectedResourceMetadata, PrmConfig, prm_handler, prm_route};
#[cfg(feature = "cedar")]
pub mod cedar;
#[cfg(feature = "cedar")]
pub use cedar::{CedarAuthorizer, CedarConfig, CedarError};
#[cfg(feature = "token-provider")]
pub mod token_provider;
#[cfg(feature = "token-provider")]
pub mod token_store;
#[cfg(feature = "token-provider")]
pub mod oauth_callback;
#[cfg(feature = "token-provider")]
pub use token_provider::{
TokenProvider, TokenProviderEnum,
StaticTokenProvider, ServiceAccountTokenProvider, ServiceAccountConfig,
InteractiveConfig, InteractiveTokenProvider,
};
#[cfg(feature = "token-provider")]
pub use token_store::{TokenStore, FileTokenStore, StoredToken};
#[cfg(feature = "token-provider")]
pub mod session_manager;
#[cfg(feature = "token-provider")]
pub use session_manager::{WebSessionManager, InMemoryTokenStore};
#[cfg(feature = "token-provider")]
pub use oauth_callback::{CallbackServer, AuthorizationCode};
#[cfg(test)]
mod tests {
use crate::error::PepError;
#[cfg(feature = "oidc-resource-server")]
#[test]
fn test_error_creation() {
let error = PepError::BadRequest("test error".to_string());
assert_eq!(error.status_code(), http::StatusCode::BAD_REQUEST);
}
#[cfg(feature = "oidc-resource-server")]
#[tokio::test]
async fn test_resource_server_creation() {
let _client = crate::oidc_resource_server::ResourceServerClient::new();
assert!(true);
}
#[cfg(feature = "oidc-client")]
#[test]
fn test_oidc_client_creation() {
let _client = crate::oidc_client::OidcClient::new();
assert!(true);
}
#[cfg(feature = "oidc-client")]
#[test]
fn test_code_verifier_generation() {
let verifier = crate::oidc_client::OidcClient::generate_code_verifier();
assert_eq!(verifier.len(), 64);
}
#[cfg(feature = "oidc-client")]
#[test]
fn test_state_generation() {
let state1 = crate::oidc_client::OidcClient::generate_state();
let state2 = crate::oidc_client::OidcClient::generate_state();
assert_ne!(state1, state2); assert_eq!(state1.len(), 36); }
}