use std::time::Duration;
pub const DEFAULT_TOKEN_TTL: Duration = Duration::from_secs(300);
pub const DEFAULT_JWKS_TTL: Duration = Duration::from_secs(3600);
pub const DEFAULT_CONFIG_TTL: Duration = Duration::from_secs(86400);
pub trait AuthenticationConfigProvider {
fn get_provider_url(&self) -> String;
fn get_openid_configuration_url(&self) -> Option<String>;
fn get_jwks_cache_ttl(&self) -> Duration {
DEFAULT_JWKS_TTL
}
fn get_config_cache_ttl(&self) -> Duration {
DEFAULT_CONFIG_TTL
}
fn get_expected_issuer(&self) -> Option<String> {
None
}
fn get_expected_audience(&self) -> Option<Vec<String>> {
None
}
}
#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)]
pub struct OidcConfiguration {
pub jwks_uri: String,
pub issuer: String,
}