diff --git a/server-rs/crates/platform-tripo/src/common/config.rs b/server-rs/crates/platform-tripo/src/common/config.rs index 0fa12c18f..ef7cdaf79 100644 --- a/server-rs/crates/platform-tripo/src/common/config.rs +++ b/server-rs/crates/platform-tripo/src/common/config.rs @@ -98,7 +98,9 @@ impl TripoSettings { pub(crate) fn client_options(&self) -> ClientOptions { ClientOptions { - api_key: Some(self.api_key.clone()), + // 校验用的是 trim 后的值,发出去的也必须是 trim 后的值:密钥被复制时带上 + // 首尾空白,就会在 provider 那边变成一个看不懂的 401。 + api_key: Some(self.api_key.trim().to_string()), base_url: Some(self.base_url.clone()), timeout: Some(self.request_timeout), retries: Some(self.retries), @@ -182,4 +184,12 @@ mod tests { .expect("合法配置必须构造成功"); assert_eq!(settings.request_timeout, Duration::from_secs(5)); } + + #[test] + fn client_options_trim_credentials_that_validation_trimmed() { + let options = + settings(Duration::from_secs(1), " key ", "https://example.com").client_options(); + + assert_eq!(options.api_key.as_deref(), Some("key")); + } }