use serde::{Deserialize, Serialize};
fn default_token_path() -> String {
"accessToken".into()
}
fn default_refresh_interval() -> f64 {
3600.0
}
fn default_refresh_buffer() -> f64 {
300.0
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct KeycloakTokenConfig {
pub url: String,
pub name: String,
pub secret: String,
#[serde(default = "default_token_path")]
pub token_path: String,
#[serde(default)]
pub expires_in_path: Option<String>,
#[serde(default = "default_refresh_interval")]
pub refresh_interval: f64,
#[serde(default = "default_refresh_buffer")]
pub refresh_buffer: f64,
}