fix(backend): skip auth rate limiter in test env
This commit is contained in:
@@ -11,7 +11,6 @@ use axum::{
|
||||
extract::DefaultBodyLimit,
|
||||
http::{HeaderValue, Method, header},
|
||||
middleware,
|
||||
response::Response,
|
||||
};
|
||||
use sqlx::PgPool;
|
||||
use tower_cookies::CookieManagerLayer;
|
||||
@@ -49,26 +48,6 @@ async fn main() -> Result<()> {
|
||||
|
||||
dotenvy::dotenv().ok();
|
||||
|
||||
let governor_conf_auth = GovernorConfigBuilder::default()
|
||||
.per_second(4)
|
||||
.burst_size(2)
|
||||
.key_extractor(SmartIpKeyExtractor)
|
||||
.finish()
|
||||
.expect("failed to initialize rate limiter configurations");
|
||||
let governor_auth_limiter = governor_conf_auth.limiter().clone();
|
||||
let interval = Duration::from_secs(60);
|
||||
|
||||
std::thread::spawn(move || {
|
||||
loop {
|
||||
std::thread::sleep(interval);
|
||||
let len = governor_auth_limiter.len();
|
||||
if len > 0 {
|
||||
info!("rate limiting auth storage size: {len}");
|
||||
}
|
||||
governor_auth_limiter.retain_recent();
|
||||
}
|
||||
});
|
||||
|
||||
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
|
||||
const BODY_LIMIT: usize = 1000 * 1000 * 1000 * 5;
|
||||
let pool = PgPool::connect(&database_url).await?;
|
||||
@@ -79,8 +58,31 @@ async fn main() -> Result<()> {
|
||||
.layer(DefaultBodyLimit::max(BODY_LIMIT));
|
||||
|
||||
let user_repository = UserRepository::new(pool);
|
||||
let routes_auth =
|
||||
routes_auth(user_repository.clone()).layer(GovernorLayer::new(governor_conf_auth));
|
||||
let mut routes_auth = routes_auth(user_repository.clone());
|
||||
|
||||
if std::env::var("ENVIRONMENT").unwrap_or_default() != "test" {
|
||||
let governor_conf_auth = GovernorConfigBuilder::default()
|
||||
.per_second(4)
|
||||
.burst_size(2)
|
||||
.key_extractor(SmartIpKeyExtractor)
|
||||
.finish()
|
||||
.expect("failed to initialize rate limiter configurations");
|
||||
let governor_auth_limiter = governor_conf_auth.limiter().clone();
|
||||
let interval = Duration::from_secs(60);
|
||||
|
||||
std::thread::spawn(move || {
|
||||
loop {
|
||||
std::thread::sleep(interval);
|
||||
let len = governor_auth_limiter.len();
|
||||
if len > 0 {
|
||||
info!("rate limiting auth storage size: {len}");
|
||||
}
|
||||
governor_auth_limiter.retain_recent();
|
||||
}
|
||||
});
|
||||
|
||||
routes_auth = routes_auth.layer(GovernorLayer::new(governor_conf_auth));
|
||||
}
|
||||
|
||||
let app = Router::new()
|
||||
.nest("/api", routes_file)
|
||||
@@ -114,4 +116,3 @@ async fn main() -> Result<()> {
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user