refactor(rust): reject negative CyberArk refresh intervals

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Yujong Lee 2026-09-21 20:25:07 +00:00
parent 4e2d4b5ff9
commit fe6804ea74
2 changed files with 3 additions and 12 deletions

View file

@ -116,13 +116,9 @@ impl CyberArkSecretManager {
.get(CYBERARK_REFRESH_INTERVAL)
.map(|value| {
value
.parse::<i64>()
.parse::<u64>()
.map(Duration::from_secs)
.map_err(|_| Error::RefreshInterval)
.map(|seconds| match seconds {
seconds if seconds < 0 => Duration::from_nanos(1),
0 => DEFAULT_REFRESH_INTERVAL,
seconds => Duration::from_secs(seconds as u64),
})
})
.transpose()?;
Ok(Self::with_client(

View file

@ -2,7 +2,7 @@ use std::{sync::Arc, time::Duration};
use base64::{Engine, engine::general_purpose::STANDARD};
use litellm_secrets_cyberark::{CyberArkSecretManager, DeleteOutcome, Error};
use litellm_secrets_types::{SecretValue, validate_secret_name};
use litellm_secrets_types::SecretValue;
use serde::Deserialize;
use wiremock::{
Match, Mock, MockServer, Request, ResponseTemplate,
@ -428,11 +428,6 @@ fn new_reports_missing_client_certificate_files() {
));
}
#[test]
fn secret_name_validation_matches_write_guard() {
assert!(validate_secret_name("../etc").is_err());
}
#[tokio::test]
async fn trailing_slash_endpoint_preserves_base_path() {
let server = MockServer::start().await;