use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
pub struct JwtConfig {
pub secret: String,
#[serde(default)]
pub rsa_private_key_pem: Option<String>,
#[serde(default = "default_issuer")]
pub issuer: String,
#[serde(default = "default_audience")]
pub audience: String,
#[serde(default = "default_access_expiry")]
pub access_token_expiry: u64,
#[serde(default = "default_refresh_expiry")]
pub refresh_token_expiry: u64,
}
pub fn default_issuer() -> String {
"cedros-login".to_string()
}
pub fn default_audience() -> String {
"cedros-app".to_string()
}
pub fn default_access_expiry() -> u64 {
900 }
pub fn default_refresh_expiry() -> u64 {
604800 }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_jwt_config_defaults() {
assert_eq!(default_issuer(), "cedros-login");
assert_eq!(default_audience(), "cedros-app");
assert_eq!(default_access_expiry(), 900);
assert_eq!(default_refresh_expiry(), 604800); }
}